如何在樹莓派上設置YOLO計算機視覺?Conda與Ultralytics
在本指南中,我們將學習如何使用Conda在樹莓派上安裝Ultralytics YOLO視覺套件。該套件將允許你運行Ultralytics支持的幾乎所有YOLO模型,我們還將為你提供一些在樹莓派上運行的演示代碼。
本指南并非關于如何在項目中全面使用YOLO模型的指南,但我們有其他指南涵蓋了該主題,這些指南鏈接在指南末尾的“接下來該做什么?”部分。另外請注意,市面上有專為樹莓派設計的AI硬件,如AI HAT+和AI攝像頭。本指南不適用于這些專用硬件加速器。本指南專門講解僅在樹莓派5的CPU上運行YOLO。雖然這比使用專用AI硬件慢,但它通常更易于使用,并且對于大多數創客項目來說速度足夠快。我們還有針對這些AI專用板卡的單獨指南,也會提供相關鏈接。
最后一點重要提示:我們在撰寫本指南時展示的說明在當前是有效的,并且應該能在相當長的一段時間內繼續有效。不過,為了以防萬一未來有更新破壞了此安裝過程,你可以在本指南末尾找到一套備份安裝說明。此備份方法將安裝已知可用的舊版本。但你應該首先嘗試主要安裝方法,因為最新版本將允許你使用最新、最棒的YOLO模型。
如果你對計算機視覺,目標檢測和姿態估計感興趣,也可以考慮查看以下內容:
在樹莓派5上使用YOLO進行物體和動物識別-入門指南
在樹莓派5上開啟YOLO姿態估計識別之旅!
如何在樹莓派 AI HAT+上進行YOLO目標檢測?
如何在樹莓派 AI HAT+上進行YOLO姿態估計?
用樹莓派 + OpenCV 打造人臉識別技術!
讓我們開始吧!考驗你英語聽力的的時候到了,你可以選擇觀看視頻演示
目錄
你需要準備什么
硬件組裝
安裝Conda和Libmamba
安裝Ultralytics和虛擬環境
設置Picamera2
讓Thonny使用虛擬環境
測試代碼:你安裝正確了嗎?
替代安裝方法:備份方法
接下來該做什么?
你需要準備什么
要完成本指南,你需要準備:
樹莓派5 - 4GB、8GB或16GB型號均可。雖然從技術上講,這也可以在樹莓派4上完成,但其速度遠慢于樹莓派5,體驗不會很好(預計幀率會低2到3倍)。我們沒有直接在樹莓派4上測試過此方法,但理論上應該可以工作
樹莓派攝像頭 - 我們使用的是攝像頭模塊V3
轉換線 - 樹莓派5配備了不同尺寸的CSI攝像頭線,而你的攝像頭可能配備的是較舊、較粗的線,因此值得仔細檢查一下。攝像頭模塊V3肯定需要一條轉換線。
散熱解決方案 - 我們使用的是主動散熱器(計算機視覺確實會將你的樹莓派運行到極限,因此你需要一個很好的散熱方案)
Micro SD卡 - 至少32GB容量
硬件組裝
硬件組裝相當簡單。將線纜較粗的一端連接到攝像頭,較細的一端連接到樹莓派5。這些連接器上有一個標簽 - 將其提起,然后將線纜插入插槽。確保線纜正確放置且對齊,然后將標簽推回原位以固定線纜。
請注意,這些連接器只能以一種方向工作,且可能比較脆弱,因此請避免過度彎曲(稍微彎曲一點是可以的)。
安裝Conda和Libmamba
首先,我們需要將樹莓派操作系統安裝到Micro SD卡上。使用樹莓派成像工具,選擇樹莓派5作為設備,選擇樹莓派操作系統(64位)作為操作系統,并選擇你的MicroSD卡作為存儲設備。
注意:在MicroSD卡上安裝樹莓派操作系統將擦除其上的所有數據。
此過程可能需要幾分鐘時間來下載操作系統。完成后,將其插入樹莓派并啟動。你的樹莓派將進行首次安裝,只需確保將其連接到互聯網即可。
你還需要記住你創建的用戶名,因為本指南中涉及的文件位置將需要用到它。為了簡單起見,你可以簡單地將其命名為“pi”,這樣本指南中的所有說明都無需修改即可直接使用。
進入桌面后,打開一個新的終端窗口,并首先通過更新和升級系統來開始操作:
sudoapt updatesudo apt upgrade -y
這確保我們在開始安裝之前擁有最新的軟件包和更新。
現在,通常我們會使用類似pip install ultralytics的命令,但Ultralytics軟件包的最新更新使得標準pip包管理器難以在樹莓派上可靠地安裝它。有太多相互依賴的軟件包,以至于pip經常無法弄清楚應該安裝哪些版本以及按什么順序安裝。如果你幸運地成功使用pip安裝了它,那么安裝時間可能會超過一個小時,而且很有可能安裝的不是最新版本的軟件包。
這就是為什么我們使用Conda,它是一個更高級的包管理器,能夠更智能地處理這些復雜的依賴樹。Conda不僅將使我們能夠成功安裝Ultralytics,而且安裝速度將更快、更可靠。
樹莓派默認附帶Pip;Conda則沒有,因此我們需要安裝一個名為Miniforge的軟件。Miniforge本質上是一個輕量級的Conda版本,專門設計用于在樹莓派等基于ARM的系統上運行。
首先,我們將從GitHub下載Miniforge安裝程序:
wgethttps://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
然后,我們將使用chmod命令使其成為可執行文件:
chmod+x Miniforge3-Linux-aarch64.sh
接著,我們運行它:
bashMiniforge3-Linux-aarch64.sh
系統將提示你接受用戶協議。按回車鍵直到到達協議末尾,然后按ctrl+c,再按回車鍵,然后輸入yes以接受協議。
經過短暫的安裝后,它會詢問你是否要將Conda設置為默認安裝程序。你很可能不希望這樣,因此在被詢問時輸入no。
安裝完成后,我們需要在當前終端窗口中激活Conda:
source~/miniforge3/bin/activate
現在,我們將安裝名為libmamba的軟件包求解器。這本質上將增強Conda的功能,使其能夠更智能地思考如何解析和安裝我們的復雜軟件包 - 這是一項非常有用的優化:
condainstall conda-libmamba-solver -y
然后,我們將告訴Conda默認使用libmamba:
conda config --setsolver libmamba
就這樣!Conda現已設置完畢,可以用于安裝我們的軟件包了。
安裝Ultralytics和虛擬環境
在安裝任何內容之前,我們需要創建一個虛擬環境。虛擬環境本質上是一個虛擬空間,我們所有的庫都將存在于該空間中,與系統的Python安裝完全分離。這可以防止沖突,并使管理具有不同要求的不同項目變得容易。我們將使用以下命令創建一個名為“ultralytics-env”且Python版本為3.11的環境:
condacreate --name ultralytics-env python=3.11-y
創建該環境后,我們可以將終端窗口設置為在該環境中工作:
condaactivate ultralytics-env
你可以通過看到命令提示符前顯示的括號(ultralytics-env)來確認我們當前處于該環境中。
如果你稍后需要再次進入該環境,或者如果你不小心關閉了終端窗口并需要重新進入該環境,你可以通過初始化Conda來重新進入:
source~/miniforge3/bin/activate
然后再次激活虛擬環境:
condaactivate ultralytics-env
現在,讓我們安裝Ultralytics軟件包。你需要輸入y來確認這些安裝:
condainstall -c conda-forge ultralytics
Conda將顯示一個友好的安裝界面并自動處理所有依賴關系。
完成后,我們需要安裝PyTorch,這是Ultralytics在底層使用的深度學習框架:
condainstall -c pytorch pytorch torchvision cpuonly
完成后,我們就成功安裝了Ultralytics YOLO軟件包!但是,在我們開始使用它之前,還有一件事需要做...
設置 Picamera2
我們已經成功安裝了Ultralytics,但還有一個關鍵組件需要添加:PiCamera2。這是樹莓派默認附帶的軟件包,用于處理我們代碼中的所有攝像頭交互。挑戰在于,我們無法使用Conda安裝它,因為從源代碼構建它極具挑戰性,并且通常會導致安裝失敗。
相反,我們需要告訴我們的虛擬環境使用樹莓派附帶的系統軟件包,包括PiCamera2:
echo '/usr/lib/python3/dist-packages'>/home/pi/miniforge3/envs/ultralytics-env/lib/python3.11/site-packages/system-packages.pth
注意:根據你在設置過程中選擇的用戶名,你可能需要更改此命令中的路徑。我們使用了“pi”,因此路徑如上所示,但如果你使用了不同的用戶名,則需要相應地調整路徑(將pi替換為你的用戶名)。
現在,我們遇到了一個兼容性問題。NumPy是一個幾乎在所有地方都使用的基礎軟件包,而PiCamera2使用的NumPy版本比Conda默認安裝的版本要舊得多。這種版本不匹配將導致我們在嘗試使用攝像頭時出錯。
首先,讓我們檢查PiCamera2使用的NumPy版本。打開一個新的終端窗口(不要關閉舊的窗口),并輸入以下命令:
python3-c"import numpy; print(numpy.__version__)"
這將打印出一個版本號。獲取該版本號,并使用以下命令輸入它,該命令將告訴Conda降級到這個兼容版本:
condainstall numpy=1.24.2
現在,我們已經將Ultralytics和Picamera2都完全安裝到了一個虛擬環境中,我們可以使用該環境來運行YOLO代碼了。
讓Thonny使用虛擬環境
在運行我們的Python代碼之前,還有一步需要做。我們需要告訴Thonny(樹莓派操作系統附帶的Python集成開發環境)使用我們剛剛創建的虛擬環境,而不是系統Python。
首次打開Thonny時,它將處于基本、精簡模式。在右上角,按按鈕以使用默認的高級模式,然后重新啟動Thonny。
重新啟動后,選擇運行 > 配置解釋器,然后在Python可執行文件下,按三個點以選擇一個新的解釋器。
我們現在需要導航到/home/pi/miniforge3/envs/ultralytics-env/bin。在這個文件夾中,你將找到一個名為“Python”的文件,選擇它并點擊確定。
現在,Thonny將使用我們的Conda環境以及我們安裝的所有軟件包。
測試代碼:你安裝正確了嗎?
在Thonny中創建一個新文件,并粘貼以下代碼:
importcv2frompicamera2 import Picamera2fromultralytics import YOLO# Set up the camera with Picampicam2= Picamera2()picam2.preview_configuration.main.size = (800,800)picam2.preview_configuration.main.format ="RGB888"picam2.preview_configuration.align()picam2.configure("preview")picam2.start()# Load YOLOE prompt-free modelmodel= YOLO("yoloe-11s-seg.pt")whileTrue: # Capture a frame from the camera frame= picam2.capture_array()
# Run YOLOE model on the captured fram results= model.predict(frame)
# Output the visual detection data annotated_frame= results[0].plot(boxes=True, masks=False)
# Get inference time inference_time= results[0].speed['inference'] fps=1000/ inference_time # Convert to milliseconds text= f'FPS: {fps:.1f}'
# Define font and position font= cv2.FONT_HERSHEY_SIMPLEX text_size= cv2.getTextSize(text, font,1,2)[0] text_x= annotated_frame.shape[1] - text_size[0] -10 #10pixels from the right text_y= text_size[1] +10 #10pixels from the top
# Draw the text on the annotated frame cv2.putText(annotated_frame, text, (text_x, text_y), font,1, (255,255,255),2, cv2.LINE_AA)
# Display the resulting frame cv2.imshow("Camera", annotated_frame)
# Exit the program if q is pressed ifcv2.waitKey(1) == ord("q"): break# Close all windowscv2.destroyAllWindows()
這是一段非常簡單的代碼,它使用插入樹莓派的攝像頭模塊的視頻流運行YOLOE對象檢測。首次使用新安裝的Ultralytics運行此代碼時,它應該會自動下載指定的模型以及它需要的任何附加軟件包。如果你能運行此代碼并在攝像頭視頻流中看到檢測框出現在對象周圍,那么恭喜你!你已經正確設置了一切。
如果在此過程中出了問題,首先要做的是逐步重試我們在這里介紹的所有步驟。很容易錯過一個步驟或不小心輸入了錯誤的命令,而遇到的問題中大約有一半源于這樣的小錯誤。
替代安裝方法:備份方法
我們上面概述的說明應該在相當長的一段時間內有效。然而,更新是不可避免的,有時這可能會導致安裝方法出現沖突。如果上述方法不起作用,在本節中,我們將介紹一種備份方法,該方法安裝一個已知可用的版本。不過,這個版本可能較舊,因此你可能無法獲得所有最新、最炫的模型及其所有更新。此方法應支持直到YOLO12(在該版本發布前幾個月發布)的所有YOLO模型。
首先,按照所有說明直到安裝好Conda和Libmamba。準備好Conda后,在樹莓派的主文件夾(/home/pi/)中創建一個新文件,并將其命名為:
ultralytics-pi5-environment.yml
在該文件中,粘貼以下內容:
name: ultralytics-envchannels: - pytorch - conda-forgedependencies: - _openmp_mutex=4.5=3_kmp_llvm - alsa-lib=1.2.14=h86ecc28_0 - aom=3.9.1=hcccb83c_0 - attr=2.5.1=h4e544f5_1 - brotli=1.1.0=h86ecc28_3 - brotli-bin=1.1.0=h86ecc28_3 - brotli-python=1.1.0=py311h89d996e_3 - bzip2=1.0.8=h68df207_7 - c-ares=1.34.5=h86ecc28_0 - ca-certificates=2025.7.14=hbd8a1cb_0 - cairo=1.18.4=h83712da_0 - certifi=2025.7.14=pyhd8ed1ab_0 - cffi=1.17.1=py311h14e8bb7_0 - charset-normalizer=3.4.2=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.2=py311hc07b1fb_0 - cpuonly=2.0=0 - cpython=3.11.13=py311hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - cyrus-sasl=2.1.28=h6c5dea3_0 - dav1d=1.2.1=h31becfc_0 - dbus=1.16.2=heda779d_0 -double-conversion=3.3.1=h5ad3122_0 - ffmpeg=7.1.1=gpl_h30b7fc1_906 - filelock=3.18.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 - font-ttf-ubuntu=0.83=h77eed37_3 - fontconfig=2.15.0=h8dda3cd_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - fonttools=4.59.0=py311h164a683_0 - freeglut=3.2.2=h5eeb66e_3 - freetype=2.13.3=h8af1aa0_1 - fribidi=1.0.10=hb9de7d4_0 - fsspec=2025.7.0=pyhd8ed1ab_0 - gdk-pixbuf=2.42.12=ha61d561_0 - gettext=0.25.1=h5ad3122_0 - gettext-tools=0.25.1=h5ad3122_0 - giflib=5.2.2=h31becfc_0 - gmp=6.3.0=h0a1ffab_2 - gmpy2=2.2.1=py311h8dd2ae4_0 - graphite2=1.3.14=h5ad3122_0 - h2=4.2.0=pyhd8ed1ab_0 - harfbuzz=11.2.1=h405b6a2_0 - hdf5=1.14.6=nompi_h587839b_102 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - icu=75.1=hf9b3779_0 - idna=3.10=pyhd8ed1ab_1 - imath=3.1.12=hf428078_0 - jasper=4.2.5=h9d5db0e_0 - jinja2=3.1.6=pyhd8ed1ab_0 - keyutils=1.6.1=h4e544f5_0 - kiwisolver=1.4.8=py311h75754e6_1 - krb5=1.21.3=h50a48e9_0 - lame=3.100=h4e544f5_1003 - lcms2=2.17=hc88f144_0 - ld_impl_linux-aarch64=2.44=h5e2c951_1 - lerc=4.0.0=hfdc4d58_1 - libabseil=20250127.1=cxx17_h18dbdb1_0 - libaec=1.1.4=h1e66f74_0 - libasprintf=0.25.1=h5e0f5ae_0 - libasprintf-devel=0.25.1=h5e0f5ae_0 - libass=0.17.3=h3c9f632_2 - libavif16=1.3.0=hb72faec_0 - libblas=3.9.0=32_h1a9f1db_openblas - libbrotlicommon=1.1.0=h86ecc28_3 - libbrotlidec=1.1.0=h86ecc28_3 - libbrotlienc=1.1.0=h86ecc28_3 - libcap=2.75=h51d75a7_0 - libcblas=3.9.0=32_hab92f65_openblas - libclang-cpp20.1=20.1.8=default_hf07bfb7_0 - libclang13=20.1.8=default_h173080d_0 - libcups=2.3.3=h5cdc715_5 - libcurl=8.14.1=h6702fde_0 - libde265=1.0.15=h2a328a1_0 - libdeflate=1.24=he377734_0 - libdrm=2.4.125=h86ecc28_0 - libedit=3.1.20250104=pl5321h976ea20_0 - libegl=1.7.0=hd24410f_2 - libev=4.33=h31becfc_2 - libexpat=2.7.1=hfae3067_0 - libffi=3.4.6=he21f813_1 - libflac=1.4.3=h2f0025b_0 - libfreetype=2.13.3=h8af1aa0_1 - libfreetype6=2.13.3=he93130f_1 - libgcc=15.1.0=he277a41_3 - libgcc-ng=15.1.0=he9431aa_3 - libgcrypt-lib=1.11.1=h86ecc28_0 - libgettextpo=0.25.1=h5ad3122_0 - libgettextpo-devel=0.25.1=h5ad3122_0 - libgfortran=15.1.0=he9431aa_3 - libgfortran5=15.1.0=hbc25352_3 - libgl=1.7.0=hd24410f_2 - libglib=2.84.2=hc022ef1_0 - libglu=9.0.3=h5ad3122_1 - libglvnd=1.7.0=hd24410f_2 - libglx=1.7.0=hd24410f_2 - libgomp=15.1.0=he277a41_3 - libgpg-error=1.55=h5ad3122_0 - libheif=1.19.7=gpl_hf91bf23_100 - libhwloc=2.11.2=default_h6f258fa_1002 - libiconv=1.18=hc99b53d_1 - libjpeg-turbo=3.1.0=h86ecc28_0 - liblapack=3.9.0=32_h411afd4_openblas - liblapacke=3.9.0=32_hc659ca5_openblas - libllvm20=20.1.8=h2b567e5_0 - liblzma=5.8.1=h86ecc28_2 - libnghttp2=1.64.0=hc8609a4_0 - libnsl=2.0.1=h86ecc28_1 - libntlm=1.4=hf897c2e_1002 - libogg=1.3.5=h86ecc28_1 - libopenblas=0.3.30=pthreads_h9d3fd7e_0 - libopencv=4.12.0=qt6_py311h6b27ceb_600 - libopengl=1.7.0=hd24410f_2 - libopenvino=2025.0.0=hd63d6c0_3 - libopenvino-arm-cpu-plugin=2025.0.0=hd63d6c0_3 - libopenvino-auto-batch-plugin=2025.0.0=hf15766e_3 - libopenvino-auto-plugin=2025.0.0=hf15766e_3 - libopenvino-hetero-plugin=2025.0.0=ha8e9e04_3 - libopenvino-ir-frontend=2025.0.0=ha8e9e04_3 - libopenvino-onnx-frontend=2025.0.0=hd8f0270_3 - libopenvino-paddle-frontend=2025.0.0=hd8f0270_3 - libopenvino-pytorch-frontend=2025.0.0=h5ad3122_3 - libopenvino-tensorflow-frontend=2025.0.0=h33e842c_3 - libopenvino-tensorflow-lite-frontend=2025.0.0=h5ad3122_3 - libopus=1.5.2=h86ecc28_0 - libpciaccess=0.18=h86ecc28_0 - libpng=1.6.50=hec79eb8_0 - libpq=17.5=hf590da8_0 - libprotobuf=5.29.3=h4edc36e_1 - librsvg=2.58.4=h3ac5bce_3 - libsndfile=1.2.2=h79657aa_1 - libsqlite=3.50.2=hdbb6186_2 - libssh2=1.11.1=h18c354c_0 - libstdcxx=15.1.0=h3f4de04_3 - libstdcxx-ng=15.1.0=hf1166c9_3 - libsystemd0=257.7=h2bb824b_0 - libtiff=4.7.0=h7c15681_5 - libtorch=2.7.1=cpu_generic_h1028f2b_2 - libudev1=257.7=h7b9e449_0 - libunwind=1.8.2=h9e2cd2c_0 - liburing=2.11=h17cf362_0 - libusb=1.0.29=h06eaf92_0 - libuuid=2.38.1=hb4cce97_0 - libuv=1.51.0=h86ecc28_0 - libvorbis=1.3.7=h01db608_0 - libvpx=1.14.1=h0a1ffab_0 - libwebp-base=1.6.0=ha2e29f5_0 - libxcb=1.17.0=h262b8f6_0 - libxcrypt=4.4.36=h31becfc_1 - libxkbcommon=1.10.0=hbab7b08_0 - libxml2=2.13.8=he060846_0 - libzlib=1.3.1=h86ecc28_2 - llvm-openmp=20.1.8=he40846f_0 - lz4-c=1.10.0=h5ad3122_1 - markupsafe=3.0.2=py311ha09ea12_1 - matplotlib-base=3.10.3=py311h0385ec1_0 - mpc=1.3.1=h783934e_1 - mpfr=4.2.1=h2305555_3 - mpg123=1.32.9=h65af167_0 - mpmath=1.3.0=pyhd8ed1ab_1 - munkres=1.1.4=pyhd8ed1ab_1 - ncurses=6.5=ha32ae93_3 - networkx=3.4.2=pyh267e887_2 - nomkl=1.0=h5ca1d4c_0 - numpy=1.24.2=py311h71ac5a4_0 - opencv=4.12.0=qt6_py311hc303290_600 - openexr=3.3.4=h718fb27_0 - openh264=2.6.0=h0564a2a_0 - openjpeg=2.5.3=h3f56577_0 - openldap=2.6.10=h30c48ee_0 - openssl=3.5.1=hd08dc88_0 - optree=0.16.0=py311hc07b1fb_0 - packaging=25.0=pyh29332c3_1 - pandas=2.3.1=py311hffd966a_0 - pango=1.56.4=he55ef5b_0 - patsy=1.0.1=pyhd8ed1ab_1 - pcre2=10.45=hf4ec17f_0 - pillow=11.3.0=py311ha4eaa5e_0 - pip=25.1.1=pyh8b19718_0 - pixman=0.46.2=h86a87f0_0 - psutil=7.0.0=py311ha879c10_0 - pthread-stubs=0.4=h86ecc28_1002 - pugixml=1.15=h6ef32b0_0 - pulseaudio-client=17.0=h2f84921_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - py-opencv=4.12.0=qt6_py311h01b6c42_600 - pybind11=3.0.0=pyh9380348_1 - pybind11-global=3.0.0=pyhf748d72_1 - pycparser=2.22=pyh29332c3_1 - pyparsing=3.2.3=pyhd8ed1ab_1 - pysocks=1.7.1=pyha55dd90_7 - python=3.11.13=h1683364_0_cpython - python-dateutil=2.9.0.post0=pyhe01879c_2 - python-tzdata=2025.2=pyhd8ed1ab_0 - python_abi=3.11=7_cp311 - pytorch=2.7.1=cpu_generic_py311_hcdfc2e8_2 - pytorch-mutex=1.0=cpu - pytz=2025.2=pyhd8ed1ab_0 - pyyaml=6.0.2=py311h58d527c_2 - qhull=2020.2=h70be974_5 - qt6-main=6.9.1=h13135bf_1 - rav1e=0.7.1=ha3529ed_3 - readline=8.2=h8382b9d_2 - requests=2.32.4=pyhd8ed1ab_0 - scipy=1.15.2=py311h2973cce_0 - sdl2=2.32.54=h5ad3122_0 - sdl3=3.2.18=h506f210_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - setuptools=80.9.0=pyhff2d567_0 - six=1.17.0=pyhd8ed1ab_0 - sleef=3.8=h8fb0607_0 - snappy=1.2.1=hd4fb6f5_1 - statsmodels=0.14.5=py311h8b8d0ce_0 - svt-av1=3.0.2=h5ad3122_0 - sympy=1.14.0=pyh2585a3b_105 - tbb=2022.1.0=hf6e3e71_0 - tk=8.6.13=noxft_h5688188_102 - torchvision=0.22.0=cpu_py311_hb1dc043_1 - torchvision-extra-decoders=0.0.2=py311h4a11f85_3 - tqdm=4.67.1=pyhd8ed1ab_1 - typing-extensions=4.14.1=h4440ef1_0 - typing_extensions=4.14.1=pyhe01879c_0 - tzdata=2025b=h78e105d_0 - ultralytics=8.3.167=pyh2a12c56_0 - unicodedata2=16.0.0=py311ha879c10_0 - urllib3=2.5.0=pyhd8ed1ab_0 - wayland=1.24.0=h698ed42_0 - wheel=0.45.1=pyhd8ed1ab_1 - x264=1!164.3095=h4e544f5_2 - x265=3.5=hdd96247_3 - xcb-util=0.4.1=hca56bd8_2 - xcb-util-cursor=0.1.5=h86ecc28_0 - xcb-util-image=0.4.0=h5c728e9_2 - xcb-util-keysyms=0.4.1=h5c728e9_0 - xcb-util-renderutil=0.3.10=h5c728e9_0 - xcb-util-wm=0.4.2=h5c728e9_0 - xkeyboard-config=2.45=h86ecc28_0 - xorg-libice=1.1.2=h86ecc28_0 - xorg-libsm=1.2.6=h0808dbd_0 - xorg-libx11=1.8.12=hca56bd8_0 - xorg-libxau=1.0.12=h86ecc28_0 - xorg-libxcomposite=0.4.6=h86ecc28_2 - xorg-libxcursor=1.2.3=h86ecc28_0 - xorg-libxdamage=1.1.6=h86ecc28_0 - xorg-libxdmcp=1.1.5=h57736b2_0 - xorg-libxext=1.3.6=h57736b2_0 - xorg-libxfixes=6.0.1=h57736b2_0 - xorg-libxi=1.8.2=h57736b2_0 - xorg-libxrandr=1.5.4=h86ecc28_0 - xorg-libxrender=0.9.12=h86ecc28_0 - xorg-libxtst=1.2.5=h57736b2_3 - xorg-libxxf86vm=1.1.6=h86ecc28_0 - yaml=0.2.5=hf897c2e_2 - zstandard=0.23.0=py311ha879c10_2 - zstd=1.5.7=hbcf94c1_2
這本質上是一份Ultralytics需要安裝的所有軟件包清單,更重要的是,還列出了已安裝的版本。在終端窗口中,確保你已激活Conda環境,然后使用該清單中的軟件包創建一個新的虛擬環境,命令如下:
condaenvcreate -f ultralytics-pi5-environment.yml
安裝完成后,我們可以使用以下echo命令來設置picamera2:
echo '/usr/lib/python3/dist-packages'>/home/pi/miniforge3/envs/ultralytics-env/lib/python3.11/site-packages/system-packages.pth
接下來該做什么?
現在,你已經準備好了Ultralytics的YOLO軟件包。接下來,你應該能夠運行Python代碼來下載并使用Ultralytics支持的任何模型。如果你正在參考另一份指南,那么你可以從這里繼續。如果你正在尋找一些指南,我們提供了以下內容,它們探索了YOLO在你項目中的實際應用(包括如何提高處理速度!):
YOLOE - 即將推出 -這是一種基于視覺概念而非特定物體進行訓練的模型。借助簡單的文本提示,無需冗長的訓練過程,它就能檢測到從未見過的物體。這是目前最令人興奮且適應性最強的YOLO模型之一。本指南從這里繼續,介紹如何使用代碼設置自定義物體檢測,以統計物體數量并跟蹤其位置。
YOLO姿態估計 -介紹如何利用YOLO模型的姿態變體來獲取人體跟蹤數據。我們探討了如何使用它生成的關鍵點數據來控制項目中的硬件,以及如何根據人的頭部位置創建一個太空入侵者游戲控制器。
YOLO物體檢測 -實際探討如何在你的創客項目中使用YOLOv8物體檢測。我們探討了如果檢測到特定物體,該如何“采取行動”。
如果你想了解一些適用于樹莓派的AI加速硬件及其功能,你可能想看看以下指南。請注意,我們在這里設置的YOLO無法在這些設備上運行;你需要采用另一種安裝方法才能在這些設備上運行模型:
AI HAT -一款專用的AI芯片,可連接到樹莓派5,性能可提升10 - 100倍。
AI攝像頭 -一款內置AI芯片的攝像頭模塊,可用于運行小型模型,性能可提升2 - 5倍。
原文地址:
https://core-electronics.com.au/guides/raspberry-pi/how-to-set-up-yolo-computer-vision-on-a-raspberry-pi-conda-and-ultralytics/
-
目標檢測
+關注
關注
0文章
229瀏覽量
16049 -
計算機視覺
+關注
關注
9文章
1710瀏覽量
46867 -
樹莓派
+關注
關注
122文章
2031瀏覽量
107657
發布評論請先 登錄
完整指南:如何使用樹莓派5、Hailo AI Hat、YOLO、Docker進行自定義數據集訓練?

樹莓派5,Raspberry Pi 5 評測
樹莓派怎么打造開心農場
樹莓派可以運行所有window程序嗎?
什么是樹莓派?樹莓派是什么架構的
4臺樹莓派5跑動大模型!DeepSeek R1分布式實戰!

樹莓派 Pico 2040 的“速度狂飆”:時鐘速度幾乎翻倍!

評論