张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(17)玩转摄像头
【摘要】 Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4
十七、在Atlas 200DK上玩转摄像头
200DK有两个摄像头的接口,早在两年前,张小白就在早期CANN版本中试过摄像头( https://bbs.huaweicloud.com/blogs/194291 ),当然也要注意里面的坑,比如说接口中排线的方向等等。
我们下面看看,在CANN 5.0.4 alpha005的版本对摄像头的支持如何:
1、在200DK上执行ascend camera例程
cd samples/cplusplus/level1_single_api/5_200dk_peripheral/ascendcamera
mkdir -p build/intermediates/host
cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SKIP_RPATH=TRUE
make
cd $HOME/samples/cplusplus/level1_single_api/5_200dk_peripheral/ascendcamera/out
mkdir output
摄像头1:
./main -i -c 1 -o ./output/filename.jpg --overwrite
摄像头0:
./main -i -c 0 -o ./output/filename0.jpg --overwrite
从宿主机将结果文件拷贝回来:
mkdir camera
cd camera
scp HwHiAiUser@192.168.1.2:~/samples/cplusplus/level1_single_api/5_200dk_peripheral/ascendcamera/out/output/*.jpg .
打开看看:
说明这两个摄像头拍照都没(太大的)问题。(尽管这个带夜视的廉价摄像头是一如既往的发红。。)
2、在200DK上执行face_detection_camera例程
执行以下脚本下载caffe模型,并转换为om模型:
cd ${HOME}/samples/cplusplus/level2_simple_inference/2_object_detection/face_detection_camera/model
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/facedection/face_detection_fp32.caffemodel
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/facedection/face_detection.prototxt
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/face_detection_camera/insert_op.cfg
atc --output_type=FP32 --input_shape="data:1,3,300,300" --weight=./face_detection_fp32.caffemodel --input_format=NCHW --output=./face_detection --soc_version=Ascend310 --insert_op_conf=./insert_op.cfg --framework=0 --save_original_model=false --model=./face_detection.prototxt
编译:
cd ~/samples/cplusplus/level2_simple_inference/2_object_detection/face_detection_camera/scripts
bash ./sample_build.sh
运行:
bash sample_run.sh
具体报错如下:
HwHiAiUser@davinci-mini:~/samples/cplusplus/level2_simple_inference/2_object_detection/face_detection_camera/scripts$ bash sample_run.sh
[INFO] The sample starts to run
Current environment valid ip list:
127.0.0.1
192.168.199.204
Please choose one to show the presenter in browser:192.168.199.204
[INFO] Acl init ok
[INFO] Open device 0 ok
[INFO] Use default context currently
content_type config string:1
[INFO] dvpp init resource ok
[INFO] Load model ../model/face_detection.om success
[INFO] Create model description success
[INFO] Create model(../model/face_detection.om) output success
[INFO] Init model ../model/face_detection.om success
[INFO] No specified carmera id, use camera0
[ERROR] Set camera fps failed
[ERROR] Set camera0 property failed
[ERROR] Open camera failed
[2022-04-23 18:24:44][LIBMEDIA_ERROR] CloseCamera failed!!! Camera[0] is not opened
[ERROR] Close camera 0 failed
[INFO] Unload model ../model/face_detection.om success
[INFO] destroy context ok
[INFO] Reset device 0 ok
[INFO] Finalize acl ok
[INFO] The program runs successfully, Please visit http://192.168.199.204:7007 for display server!
Enter any command to stop the application:
kill existing project process: kill -9 3147.
/home/HwHiAiUser/Ascend/thirdpart/aarch64/common/sample_common.sh: line 40: kill: (3147) - No such process
ERROR: kill project process failed.
经过专家指点,是目前摄像头相关底层代码的fps设置有误:
当然,专家的指点只是一个方向,代码具体的实现张小白仔细看了一下,face_detection_camera 调用的是acllite。
首先,main.cpp调用了 ~/samples/cplusplus/common/acllite/src/AclLiteVideoProc.cpp:
然后,位于 /home/HwHiAiUser/samples/cplusplus/common/acllite/src 的 AclLiteVideoProc.cpp 调用了CameraCapture:
由于不知道它调了哪个,所以两边都加了个日志。
最后在 ./samples/cplusplus/common/acllite/src/CameraCapture.cpp 的 SetProperty设置属性:
张小白对于代码逻辑都没改,只是加了几行日志。
然后
cd ~/samples/cplusplus/common/acllite
make
make install
再回到工程目录:
cd ~/samples/cplusplus/level2_simple_inference/2_object_detection/face_detection_camera/scripts
bash sample_build.sh
bash sample_run.sh
此时,代码正在运行,浏览器打开 192.168.199.204:7007
出现了Presenter Server的页面,点击person可以打开:
可以看到,视频中的人脸可以被成功识别。
(未完待续)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
张辉2022/04/27 22:03:111楼编辑删除举报
https://bbs.huaweicloud.com/blogs/345859
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(二)分设环境之运行环境准备
https://bbs.huaweicloud.com/blogs/345861
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(三)分设环境之运行环境准备dd
https://bbs.huaweicloud.com/blogs/345862
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(四)MindStudio安装配置
https://bbs.huaweicloud.com/blogs/345869
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(五)OpenCV的安装
https://bbs.huaweicloud.com/blogs/345905
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(六)番外篇:寻找失去的网卡
https://bbs.huaweicloud.com/blogs/345906
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(七)合设环境准备(mksd)
https://bbs.huaweicloud.com/blogs/346015
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(八)完成CANN进阶班大作业1
https://bbs.huaweicloud.com/blogs/347062
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(九)ATC模型转换
https://bbs.huaweicloud.com/blogs/348182
张辉2022/04/27 22:03:472楼编辑删除举报
https://bbs.huaweicloud.com/blogs/348248
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(11)番外:TF卡扩容
https://bbs.huaweicloud.com/blogs/349546
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(12)更好的TF卡扩容方式
https://bbs.huaweicloud.com/blogs/349547
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(13)尝试昇思跑LeNet-1
https://bbs.huaweicloud.com/blogs/349620
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(14)尝试昇思跑LeNet-2
https://bbs.huaweicloud.com/blogs/349621
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(15)尝试昇思跑LeNet-3
https://bbs.huaweicloud.com/blogs/349622
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(16)尝试昇思跑LeNet-4
https://bbs.huaweicloud.com/blogs/349626
张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(17)玩转摄像头
https://bbs.huaweicloud.com/blogs/349654