티스토리 뷰
출처 : BPI-M2 Ultra use OpenCV and face recognition - Banana Pi BPI-M2 Ultra / BPI-M2 Berry
Compile and Run OpenCV2 on Banana Pi - Banana Pi BPI-M2 - banana pi single board computer official forum SinoVoip BPI team
Raspberry Pi 3에 opencv_contrib 포함하여 OpenCV 3.2 설치 - 멈춤보단 천천히라도
Install guide: Raspberry Pi 3 + Raspbian Jessie + OpenCV 3
OpenCV 설치 - MechaWiki
Use bpi-update command to update kernel image
Update bpi-tools
$ git clone https://github.com/BPI-SINOVOIP/bpi-tools.git Cloning into 'bpi-tools'... remote: Counting objects: 89, done. remote: Total 89 (delta 0), reused 0 (delta 0), pack-reused 89 Unpacking objects: 100% (89/89), done. Checking connectivity... done. $ cd bpi-tools $ sudo ./bpi-tools -u -U F_UPDATE=yes F_UPGRADE=yes BPIFILE=/home/pi/.bpi-tools.lst Wait for download index file ... OK!!\n BPIFILE=/home/pi/.bpi-tools.lst Wait for download index file ... OK!!\n bpi files: bpi-tools v1.2.0(github) bpi-bootsel v1.0.6a bpi-copy v1.0.11a bpi-get v1.0.3(github) bpi-migrate v1.3.2a(github) bpi-hw v1.2.8 bpi-update v1.3.2a download bpi files: bpi-tools bpi-tools: v1.2.1(github) bpi-bootsel bpi-bootsel: v1.2.1(github) bpi-copy bpi-copy: v1.2.1(github) bpi-get bpi-get: v1.0.3(github) bpi-migrate bpi-migrate: v1.3.5(github) bpi-hw bpi-hw: v1.2.8 bpi-update bpi-update: v1.3.4(github) upgrade bpi files: /usr/bin/bpi-tools /usr/bin/bpi-bootsel /usr/bin/bpi-copy /usr/bin/bpi-get /usr/bin/bpi-migrate /usr/bin/bpi-hw /usr/bin/bpi-update bpi files: /usr/bin/bpi-tools v1.2.1(github) /usr/bin/bpi-bootsel v1.2.1(github) /usr/bin/bpi-copy v1.2.1(github) /usr/bin/bpi-get v1.0.3(github) /usr/bin/bpi-migrate v1.3.5(github) /usr/bin/bpi-hw v1.2.8 /usr/bin/bpi-update v1.3.4(github)
Check bpi-tools version
$ bpi-tools -v F_VERSION=yes bpi files: /usr/bin/bpi-tools v1.2.1(github) /usr/bin/bpi-bootsel v1.2.1(github) /usr/bin/bpi-copy v1.2.1(github) /usr/bin/bpi-get v1.0.3(github) /usr/bin/bpi-migrate v1.3.5(github) /usr/bin/bpi-hw v1.2.8 /usr/bin/bpi-update v1.3.4(github)
Use bpi-update to update kerenl
$ mkdir update_file $ cd update_file $ sudo bpi-update -c bpi-m2u.conf CONFFILE=bpi-m2u.conf Wait for download bpi-m2u.conf ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/others/for-bpi-tools/conf/board/bpi-m2u.conf OK!!\n BPIFILE=/home/pi/.bpi-update.lst Wait for download index file ... OK!!\n INFO: /dev/mmcblk0 : SD/eMMC !! umount device: /dev/mmcblk0 umount /dev/mmcblk0p1 ###################### update /dev/mmcblk0p1(vfat) with BPI-BOOT-bpi-m2u.tgz ###################### Wait for download BPI-BOOT-bpi-m2u.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-BOOT/BPI-BOOT-bpi-m2u.tgz OK!!\n tar xf BPI-BOOT-bpi-m2u.tgz --keep-directory-symlink -C /mnt total 28 drwxr-xr-x 4 root root 16384 Aug 24 08:04 . drwxr-xr-x 22 root root 4096 Sep 13 10:24 .. drwxr-xr-x 3 root root 4096 Aug 24 08:04 bananapi drwxr-xr-x 2 root root 4096 Sep 13 04:35 System Volume Information ###################### update /dev/mmcblk0p2(root) with bpi-tools.tgz BOOTLOADER-bpi-m2u.tgz 3.10.107-BPI-M2U-Kernel.tgz libvdpau_sunxi.tgz bpi-service.tgz addons.tgz bt.tgz camera.tgz camera-apps.tgz brcm.tgz ###################### Wait for download bpi-tools.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/bpi-tools.tgz OK!!\n tar xf bpi-tools.tgz --keep-directory-symlink -C / Wait for download BOOTLOADER-bpi-m2u.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/BOOTLOADER-bpi-m2u.tgz OK!!\n tar xf BOOTLOADER-bpi-m2u.tgz --keep-directory-symlink -C / Wait for download 3.10.107-BPI-M2U-Kernel.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/3.10.107-BPI-M2U-Kernel.tgz OK!!\n tar xf 3.10.107-BPI-M2U-Kernel.tgz --keep-directory-symlink -C / Wait for download libvdpau_sunxi.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/libvdpau_sunxi.tgz OK!!\n tar xf libvdpau_sunxi.tgz --keep-directory-symlink -C / Wait for download bpi-service.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/bpi-service.tgz OK!!\n tar xf bpi-service.tgz --keep-directory-symlink -C / Wait for download addons.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/addons.tgz OK!!\n tar xf addons.tgz --keep-directory-symlink -C / Wait for download bt.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/bt.tgz OK!!\n tar xf bt.tgz --keep-directory-symlink -C / Wait for download camera.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/camera.tgz OK!!\n tar xf camera.tgz --keep-directory-symlink -C / Wait for download camera-apps.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/camera-apps.tgz OK!!\n tar xf camera-apps.tgz --keep-directory-symlink -C / Wait for download brcm.tgz ... https://github.com/BPI-SINOVOIP/BPI-files/raw/master/SD/BPI-ROOT/brcm.tgz OK!!\n tar xf brcm.tgz --keep-directory-symlink -C / total 92 drwxr-xr-x 22 root root 4096 Nov 8 2016 . drwxr-xr-x 22 root root 4096 Nov 8 2016 .. drwxr-xr-x 2 root root 4096 Nov 21 2016 bin drwxr-xr-x 2 root root 4096 Apr 22 2016 boot drwxr-xr-x 14 root root 4600 Sep 13 10:22 dev drwxr-xr-x 150 root root 12288 Nov 22 2016 etc drwxr-xr-x 3 root root 4096 Jul 13 2016 home drwxr-xr-x 22 root root 4096 Nov 27 2015 lib drwx------ 2 root root 16384 Apr 22 2016 lost+found drwxr-xr-x 3 root root 4096 Jul 21 2016 media drwxr-xr-x 2 root root 4096 Apr 21 2016 mnt drwxr-xr-x 3 root root 4096 Jul 20 2016 opt dr-xr-xr-x 195 root root 0 Jan 1 1970 proc drwx------ 8 root root 4096 Aug 23 15:50 root drwxr-xr-x 27 root root 880 Sep 13 10:24 run drwxr-xr-x 2 root root 4096 Aug 1 10:54 sbin drwxr-xr-x 2 root root 4096 Apr 21 2016 srv dr-xr-xr-x 12 root root 0 Sep 13 10:21 sys drwxr-xr-x 4 root root 4096 Nov 27 2015 system drwxrwxrwt 10 root root 4096 Sep 13 15:47 tmp drwxr-xr-x 12 root root 4096 Dec 21 2016 usr drwxr-xr-x 13 root root 4096 Jul 4 2016 var INFO: online system: skip umount /
기존에 설치된 OpenCV 제거
OpenCV 설치 여부 확인 - 설치가 안 된경우
$ pkg-config --modversion opencv Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found
OpenCV 설치 여부 확인 - 설치 되어 있는 경우
$ pkg-config --modversion opencv 2.4.9.1
설치되어 있는 OpenCV 삭제
$ sudo apt-get purge libopencv* python-opencv $ sudo apt-get autoremove
OS 업그레이드
$ sudo apt-get update $ sudo apt-get upgrade
개발 도구와 관련 패키지 설치
$ sudo apt-get install build-essential cmake pkg-config
이미지(JPEG, PNG, TIFF, 기타 등등...) 처리 관련 패키지 설치
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
비디오 처리 관련 패키지 설치
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $ sudo apt-get install libxvidcore-dev libx264-dev
Video4Linux 패키지 설치
$ sudo apt-get install libv4l-dev v4l-utils
GTK 패키지 설치
$ sudo apt-get install libgtk2.0-dev
OpenCV 관련 패키지 설치
$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev
Python 설치
$ sudo apt-get install python2.7-dev python3-dev
NumPy 설치
출처 : 예제로 배우는 파이썬 프로그래밍 - numpy 사용하기
$ sudo apt-get install python-numpy python3-numpy
OpenCV 소스 다운로드 및 압축해제
$ cd ~ $ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip $ unzip opencv.zip
OpenCV Extra Modules 소스 다운로드 및 압축해제
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip $ unzip opencv_contrib.zip
cmake
$ cd ~/opencv-3.2.0/ $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_ZLIB=ON \ -D BUILD_PNG=ON \ -D WITH_TBB=OFF \ -D WITH_IPP=OFF \ -D WITH_1394=OFF \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D BUILD_DOCS=OFF \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D ENABLE_NEON=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \ -D WITH_V4L=ON \ -D WITH_FFMPEG=ON \ -D WITH_XINE=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ ../ -- -- General configuration for OpenCV 3.2.0 ===================================== -- Version control: unknown -- -- Extra modules: -- Location (extra): /home/pi/opencv_contrib-3.2.0/modules -- Version control (extra): unknown -- -- Platform: -- Timestamp: 2017-09-12T15:12:16Z -- Host: Linux 3.10.107-BPI-M2U-Kernel armv7l -- CMake: 3.5.1 -- CMake generator: Unix Makefiles -- CMake build tool: /usr/bin/make -- Configuration: RELEASE -- -- C/C++: -- Built as dynamic libs?: YES -- C++ Compiler: /usr/bin/c++ (ver 5.4.0) -- C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -- C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG -- C Compiler: /usr/bin/cc -- C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -mfpu=neon -ffunction-sections -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG -- C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -mfpu=neon -ffunction-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG -- Linker flags (Release): -- Linker flags (Debug): -- ccache: NO -- Precompiled headers: YES -- Extra dependencies: /usr/lib/arm-linux-gnueabihf/libtiff.so /usr/lib/arm-linux-gnueabihf/libjasper.so /usr/lib/arm-linux-gnueabihf/libjpeg.so gtk-3 gdk-3 pangocairo-1.0 pango-1.0 atk-1.0 cairo-gobject cairo gdk_pixbuf-2.0 gio-2.0 gobject-2.0 glib-2.0 gthread-2.0 avcodec-ffmpeg avformat-ffmpeg avutil-ffmpeg swscale-ffmpeg dl m pthread rt -- 3rdparty dependencies: zlib libwebp libpng IlmImf libprotobuf tegra_hal -- -- OpenCV modules: -- To be built: core flann imgproc ml photo reg surface_matching video dnn freetype fuzzy imgcodecs shape videoio highgui objdetect plot superres xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo tracking videostab xfeatures2d ximgproc aruco optflow phase_unwrapping stitching structured_light python2 python3 -- Disabled: world contrib_world -- Disabled by dependency: - -- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java ts viz cnn_3dobj cvv hdf matlab sfm -- -- GUI: -- QT: NO -- GTK+ 3.x: YES (ver 3.18.9) -- GThread : YES (ver 2.48.2) -- GtkGlExt: NO -- OpenGL support: NO -- VTK support: NO -- -- Media I/O: -- ZLib: build (ver 1.2.8) -- JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver ) -- WEBP: build (ver 0.3.1) -- PNG: build (ver 1.6.24) -- TIFF: /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 - 4.0.6) -- JPEG 2000: /usr/lib/arm-linux-gnueabihf/libjasper.so (ver 1.900.1) -- OpenEXR: build (ver 1.7.1) -- GDAL: NO -- GDCM: NO -- -- Video I/O: -- DC1394 1.x: NO -- DC1394 2.x: NO -- FFMPEG: YES -- avcodec: YES (ver 56.60.100) -- avformat: YES (ver 56.40.101) -- avutil: YES (ver 54.31.100) -- swscale: YES (ver 3.1.101) -- avresample: NO -- GStreamer: NO -- OpenNI: NO -- OpenNI PrimeSensor Modules: NO -- OpenNI2: NO -- PvAPI: NO -- GigEVisionSDK: NO -- Aravis SDK: NO -- UniCap: NO -- UniCap ucil: NO -- V4L/V4L2: NO/YES -- XIMEA: NO -- Xine: NO -- gPhoto2: NO -- -- Parallel framework: pthreads -- -- Other third-party libraries: -- Use IPP: NO -- Use VA: NO -- Use Intel VA-API/OpenCL: NO -- Use Lapack: NO -- Use Eigen: YES (ver 3.2.92) -- Use Cuda: NO -- Use OpenCL: YES -- Use OpenVX: NO -- Use custom HAL: YES (carotene (ver 0.0.1)) -- -- OpenCL: <Dynamic loading of OpenCL library> -- Include path: /home/pi/opencv-3.2.0/3rdparty/include/opencl/1.2 -- Use AMDFFT: NO -- Use AMDBLAS: NO -- -- Python 2: -- Interpreter: /usr/bin/python2.7 (ver 2.7.12) -- Libraries: /usr/lib/arm-linux-gnueabihf/libpython2.7.so (ver 2.7.12) -- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0) -- packages path: lib/python2.7/dist-packages -- -- Python 3: -- Interpreter: /usr/bin/python3 (ver 3.5.2) -- Libraries: /usr/lib/arm-linux-gnueabihf/libpython3.5m.so (ver 3.5.2) -- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.11.0) -- packages path: lib/python3.5/dist-packages -- -- Python (for build): /usr/bin/python2.7 -- -- Java: -- ant: NO -- JNI: NO -- Java wrappers: NO -- Java tests: NO -- -- Matlab: Matlab not found or implicitly disabled -- -- Tests and samples: -- Tests: NO -- Performance tests: NO -- C/C++ Examples: NO -- -- Install path: /usr/local -- -- cvconfig.h is in: /home/pi/opencv-3.2.0/build -- ----------------------------------------------------------------- -- -- Configuring done -- Generating done -- Build files have been written to: /home/pi/opencv-3.2.0/build
빌드 (BPI-M2 Berry 에는 4 개의 코어가 있으므로 OpenCV를 더 빠르게 컴파일 할 수 있도록 -j4 옵션추가)
$ cat /proc/cpuinfo | grep processor | wc -l 4 $ make -j4
OpenCV 설치
$ sudo make install
/etc/ld.so.conf.d/ 디렉토리에 /usr/local/lib를 포함하는 설정파일이 있는지 확인
$ cat /etc/ld.so.conf.d/* #/opt/vc/lib /usr/lib/mali ## Multiarch support /lib/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabihf/mesa-egl /usr/lib/arm-linux-gnueabihf/mesa ## libc default configuration /usr/local/lib /opt/vc/lib
OpenCV 설치
$ sudo ldconfig
OpenCV 설치 확인 - 1
$ pkg-config --modversion opencv 3.2.0
OpenCV 설치 확인 - 2
$ pkg-config --libs --cflags opencv -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dpm -lopencv_freetype -lopencv_fuzzy -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_plot -lopencv_dnn -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
용량 확보를 위해서 다운로드 받은 소스 파일 삭제
$ cd ~ $ rm -rf opencv-3.2.0 opencv_contrib-3.2.0
python3에서 OpenCV 버전확인
$ python3 Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.2.0'
python3에서 얼굴인식 예제 실행 (Camera 인식 실패로 Camera 직접 제어는 포기)
$ python3 /usr/local/share/OpenCV/samples/python/facedetect.py --cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0 face detection using haar cascades USAGE: facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>] Warning: unable to open video source: /dev/video0 Warning: unable to open video source: synth Traceback (most recent call last): File "/usr/local/share/OpenCV/samples/python/facedetect.py", line 52, in <module> ret, img = cam.read() AttributeError: 'NoneType' object has no attribute 'read'
python3에서 얼굴인식 예제 작성 (mjpg-streamer에서 Camera 영상을 받아 오도록 수정)
#!/usr/bin/env python ''' face detection using haar cascades USAGE: facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>] ''' # Python 2/3 compatibility from __future__ import print_function import numpy as np import cv2 import requests # local modules # from video import create_capture from common import clock, draw_str BYTES_NONE = b''; def detect(img, cascade): rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30), flags=cv2.CASCADE_SCALE_IMAGE) if len(rects) == 0: return [] rects[:,2:] += rects[:,:2] return rects def draw_rects(img, rects, color): for x1, y1, x2, y2 in rects: cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) if __name__ == '__main__': import sys, getopt print(__doc__) args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade=', 'nested-cascade=']) try: video_src = video_src[0] except: video_src = 0 args = dict(args) cascade_fn = args.get('--cascade', "../../data/haarcascades/haarcascade_frontalface_alt.xml") nested_fn = args.get('--nested-cascade', "../../data/haarcascades/haarcascade_eye.xml") cascade = cv2.CascadeClassifier(cascade_fn) nested = cv2.CascadeClassifier(nested_fn) #cam = create_capture(video_src, fallback='synth:bg=../data/lena.jpg:noise=0.05') while True: r = requests.get('http://127.0.0.1:8080/?action=snapshot"', auth=('user', 'password'), stream=True) if (r.status_code == 200): bytes = BYTES_NONE for chunk in r.iter_content(chunk_size=1024): bytes += chunk a = bytes.find(b'\xff\xd8') b = bytes.find(b'\xff\xd9') if a != -1 and b != -1: jpg = bytes[a:b + 2] bytes = bytes[b + 2:] # ret, img = cam.read() # ret, \ img = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray = cv2.equalizeHist(gray) t = clock() rects = detect(gray, cascade) vis = img.copy() draw_rects(vis, rects, (0, 255, 0)) if not nested.empty(): for x1, y1, x2, y2 in rects: roi = gray[y1:y2, x1:x2] vis_roi = vis[y1:y2, x1:x2] subrects = detect(roi.copy(), nested) draw_rects(vis_roi, subrects, (255, 0, 0)) dt = clock() - t draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000)) cv2.imshow('facedetect', vis) if cv2.waitKey(5) == 27: break cv2.destroyAllWindows()
$ python3 /usr/local/share/OpenCV/samples/python/facedetect.py --cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0
python3에서 얼굴인식 예제 실행
얼굴인식 예제 컴파일, 실행 (컴파일 실패로 CPP 예제는 포기)
$ cp /usr/local/share/OpenCV/samples/cpp/facedetect.cpp ./ $ g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv) /usr/bin/ld: /tmp/ccWuwUjB.o: undefined reference to symbol 'fopen@@GLIBC_2.4' //lib/arm-linux-gnueabihf/libc.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
cmake 다른 옵션
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_SHARED_LIBS=OFF \ -D BUILD_ZLIB=ON \ -D BUILD_PNG=ON \ -D WITH_TBB=OFF \ -D WITH_IPP=OFF \ -D WITH_1394=OFF \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D BUILD_DOCS=OFF \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D ENABLE_NEON=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \ -D WITH_V4L=ON \ -D WITH_FFMPEG=ON \ -D WITH_XINE=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ ../
- Total
- Today
- Yesterday
- Java
- flex
- oracle
- Delphi
- 전예희
- JavaScript
- MySQL
- 일본여행
- Xcode
- Spring MVC
- Spring
- KOBA
- 튜닝쇼 2008
- NDK
- android
- Delphi Tip
- ubuntu
- sas2009
- 동경
- Mac
- ffmpeg
- ble
- BPI-M4
- 서울오토살롱
- 레이싱모델 익스트림 포토 페스티벌
- SAS
- 지스타2007
- Linux
- 송주경
- koba2010
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |