yuanyuanxiang/ObjDetector
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
这是一个MFC(C++)调用Python(TensorFlow)的Visual Studio项目。 # 升级IDE的说明 本人于2024年9月13日将IDE升级为VS2019,按照下述步骤操作,来保证项目成功编译和运行。 (1) 下载OpenCV 3.2 访问"https://github.com/opencv/opencv/releases/download/3.2.0/opencv-3.2.0-vc14.exe"。 解压所下载文件到指定目录,可能需要用CMake编译。将得到头文件目录、库目录和一切所需文件。请根据个人需要操作。 将解压后的OpencCV路径添加到环境变量,名称为OPENCV. 如果不按照本说明命名环境变量,则需要逐个修改项目文件. OpenCV路径下面包含"include"目录以及库目录(例如,x64\vc14\lib). 可能需配套修改"ObjDetector\config.h"文件中的相关定义. (2) 下载Python 3.12 安装所下载的文件,注意在安装过程中选择所需的项目。同理,将解压后的Python路径添加到环境变量,名称为PYTHONHOME. 如果不按照本说明命名环境变量,则需要逐个修改项目文件. 由于Python版本升级,部分代码随之变更(pyCaller.h)。 (3) 安装Python库 打开命令行,利用pip安装numpy、pillow、matplotlib、tensorflow。 (4) tensorflow适配 需要调整Python文件:detect.py 参看:https://stackoverflow.com/questions/57614436/od-graph-def-tf-graphdef-attributeerror-module-tensorflow-has-no-attribut https://stackoverflow.com/questions/56127592/attributeerror-module-tensorflow-has-no-attribute-configproto (5) 已知问题 在Debug模式下,出现"No module named 'numpy.core._multiarray_umath'"错误,但是在Release模式下是正常的。 objDetector运行报错,但示例CallPython是能正常运行的。 #CallPython 调用TensorFlow对一张图像进行目标检测的例子。 #objDetector 一个基于对话框的调用TensorFlow进行目标检测的例子。 #编译前置条件 0、已训练好的模型(frozen_inference_graph.pb) 1、安装python3.5 64位,安装OpenCV 64位 2、pip install numpy 3、pip install pillow 4、pip install matplotlib 5、pip install tensorflow 6、其他包视情况而定 #编译注意事项 1、为项目添加Python的附加包含目录及库目录,复制pythonXX.lib的备份,并重命名为pythonXX_d.lib; 1、根据个人计算机,编译好openCV,并在stdafx.h或其他链接的位置配置OpenCV版本及路径; 2、error LNK2019: 无法解析的外部符号 __imp___Py_NegativeRefcount、__imp___Py_RefTotal解决方案: 注释掉object.h文件第56行 #define Py_TRACE_REFS 3、根据个人设置,修改Py_SetPythonHome中python的目录(宏:PYTHON_HOME); 4、需要将被调用的 *.py 文件拷贝到生成目录; 5、需要给定目标检测的模型文件,并在相应的 *.py 文件中填写。 #补充说明 2018.6.3 本程序测试所用的模型:Faster R-CNN with Inception v2(faster_rcnn_inception_v2) 有问题,请联系:yuan_yuanxiang@163.com 2018-4-16 袁沅祥 注