lanyi
2025-07-31 e4b73bdfd22dea333fa8f1cd405e31ef1eadd124
增加vs2022工程对应的project2工程(CNN模型)说明文档
1个文件已添加
56 ■■■■■ 已修改文件
Server/刘创世/document/project2工程(CNN模型)说明文档.c 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Server/Áõ´´ÊÀ/document/project2¹¤³Ì(CNNÄ£ÐÍ)˵Ã÷Îĵµ.c
New file
@@ -0,0 +1,56 @@
--------------------------这个工程是CNN模型使用,包括图片采集,预处理,模型搭建,人脸识别,主要是c++调用py模块----------------
一、工程目录主要文件架构:
project2|----c++文件
        |----工程文件sln等后缀
        |----requirements.txt文件,用来配置环境,在cmd中执行命令为python解释器安装库所需文件,下面会说明
        |----x64文件夹
                     |----Release文件夹
                                      |----exe程序文件
                                      |----py模块文件和模块执行后生成文件、文件夹
                                      |----注意:model文件夹下的haarcascade_frontalface_alt2xml文件是配置文件,不是生成文件,主要是cv模块调用所依赖的分类器文件
二、c++相关文件说明
--test.cpp文件
    è¯´æ˜Žï¼šè¿™æ˜¯è°ƒç”¨CNN_Module完成图片采集,预处理,模型搭建,人脸识别这四个过程
    è¡¥å……: 1、对于py模块加载路径可按类使用说明进行相关操作,
          2、对于py模块运行代码中文件加载路径和生成路径有需求就修改模块文件代码
--CNN_Module类使用说明
    è¯´æ˜Žï¼šè¿™æ˜¯ä¸€ä¸ªç®€å•的封装类,用于调用python脚本
    1、外部环境配置:
               -使用前需要安装相关的python环境,包括python解释器和解释器下的第三方库
               -这里使用的是3.7.2版本
               -对应的第三方库安装说明:
                      è€ƒè™‘使用其他虚拟环境的容易报错,下面是解决措施,除此之外也可以创建一个虚拟环境,然后在虚拟环境安装第三方库
                      ä¸Žæºä»£ç åŒä¸€ä¸ªç›®å½•下会有一个requirements.txt文件,使用pip工具
                  å®‰è£…第三方库:
                        æ‰“å¼€cmd,执行命令 "D:\python\python-3.7.2-amd64-install\Scripts\pip.exe" install
                                          -r "D:\Desktop\requirements.txt"
                                          --target "D:\python\python-3.7.2-amd64-install\Lib\site-packages"
                                          -i https://pypi.tuna.tsinghua.edu.cn/simple
                        è¯´æ˜Ž: 1、这是连贯的命令,不要换行,可以用记事本调整,下面是对应的说明
                              2、你自己的python3.7.2下面的pip.exe路径,一般在python安装目录下的Scripts文件夹中
                              3、requirements.txt文件路径
                              4、指定安装目录路径,一般是python安装目录下的Lib\site-packages
                              5、使用清华镜像源,速度快
      2、c++配置python环境,不需要在属性配置,也不需要给工程加dll或者lib文件,只需要改如下代码中的路径:
      #pragma comment(lib, "D:/python/python-3.7.2-amd64-install/libs/python37.lib")->第二个参数改成自己的python安装路径下libs下的python.lib路径
      #include "D:/python/python-3.7.2-amd64-install/include/Python.h"->改成自己的python安装路径下include下的Python.h路径
      3、使用方法
            å‚考tset.cpp文件
            ç±»å®žä¾‹åŒ–的时候,调用构造函数,同时初始化python解释器,并导入sys库(python基本库),加载当前目录到sys.path(这样就能识别这个目录下的模块文件)
            ç±»é”€æ¯çš„æ—¶å€™ï¼Œè°ƒç”¨æžæž„函数,释放python解释器,同时释放所有导入的模块(有个私有成员变量modules保存导入的模块,防止多次导入)
            å…¶ä»–函数说明
            safeDecref能够安全释放PyObject,防止多次释放
            checkError能够检查python错误,如果错误,抛出异常
            addModuleSearchPath能够添加模块搜索路径,将模块文件包含路径添加到sys.path,之后就可以使用下面三个函数导入对应目录下的模块文件(包括工程外)
            importModule仅导入模块文件,不执行任何脚本,参数字符串为模块名字
            executeScript1支持执行脚本代码片段,参数为模块名字,脚本代码片段,返回值PyObject,其中如果模块没有导入,会自动导入
            executeScript2支持执行脚本代码片段,参数为模块名字,函数名字,参数列表,关键字参数列表,返回值为PyObject*,返回值需要自己转换成需要的类型,其中如果模块没有导入,会自动导入
            æ³¨æ„äº‹é¡¹:
            1、executeScript1执行多条语句时,以\n作为分割符
            2、按需修改py模块代码中的路径,反正跟路径搭勾的一定要小心