项目简介
本项目是基于TensorFlow框架的深度学习应用,结合数字识别和物体检测两大功能。通过构建和训练卷积神经网络(CNN)模型,实现手写数字图像识别,以及对图像中物体的检测和分类。
项目的主要特性和功能
数字识别
- 数据预处理:用
input_data.py
模块读取并预处理MNIST数据集,转换为适合神经网络输入的格式。 - 模型构建:在
normal_MNIST.py
里定义卷积神经网络结构,含卷积层、池化层和全连接层。 - 训练过程:用TensorFlow优化器训练模型,迭代数据集和更新权重以最小化损失函数。
- 评估与可视化:用TensorFlow摘要功能记录训练中的权重和损失变化,用TensorBoard可视化。
- 预测:训练完成后可对新输入图像预测数字。
物体检测
- 数据集准备:制作Pascal VOC标准格式数据集,转换为TFRecord格式供TensorFlow读取。
- 模型训练:用SSD - MobileNet架构训练模型,生成checkpoints文件。
- 模型评估:用
eval.py
脚本评估训练后的模型,生成TensorBoard文件可视化结果。 - 模型导出:用
export_inference_graph.py
脚本生成.pb文件,用于测试或移植客户端。 - 测试与部署:用
object_detection_tutorial.ipynb
脚本读取.pb文件,对输入图像检测并输出结果。
安装使用步骤
数字识别
- 环境准备:确保安装Python和TensorFlow库。
- 数据集准备:下载MNIST数据集(可用
input_data.py
模块下载)。 - 运行代码:运行
normal_MNIST.py
开始模型训练。 - 评估模型:训练中通过TensorBoard查看训练进度和性能。
- 预测测试:训练完成后,用
Compare_cnnMNIST.py
中的代码对新输入图像进行数字识别。
物体检测
- 环境准备:确保安装Docker,从Docker Hub拉取项目镜像:
docker pull wujy1284/ssdmobilenet
。 - 启动Docker容器:在Docker中启动项目,每次开启新terminal执行:
protoc object_detection/protos/*.proto --python_out=. export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim
- 数据集准备:制作Pascal VOC标准格式数据集,用
create_pascal_tf_record.py
脚本转换为TFRecord格式。 - 模型训练:运行指令开始训练:
python object_detection/train.py \ --logtostderr \ --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \ --train_dir=${PATH_TO_TRAIN_DIR}
- 模型评估:运行指令评估模型:
python object_detection/eval.py \ --logtostderr \ --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \ --checkpoint_dir=${PATH_TO_TRAIN_DIR} \ --eval_dir=${PATH_TO_EVAL_DIR}
- 生成.pb文件:运行指令生成:
python object_detection/export_inference_graph.py \ --input_type image_tensor \ --pipeline_config_path ${PIPELINE_CONFIG_PATH} \ --trained_checkpoint_prefix ${TRAIN_PATH} \ --output_directory output_inference_graph.pb
- 测试与部署:用
object_detection_tutorial.ipynb
脚本读取.pb文件,对输入图像检测并输出结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】