望城网站建设,商城网站建设 数商云,作弊网站,网络设计的目的是什么往期热门博客项目回顾#xff1a;
计算机视觉项目大集合
改进的yolo目标检测-测距测速
路径规划算法
图像去雨去雾目标检测测距项目
交通标志识别项目
yolo系列-重磅yolov9界面-最新的yolo
姿态识别-3d姿态识别
深度学习小白学习路线
YOLOv5与骨龄识别 YOLOv5
计算机视觉项目大集合
改进的yolo目标检测-测距测速
路径规划算法
图像去雨去雾目标检测测距项目
交通标志识别项目
yolo系列-重磅yolov9界面-最新的yolo
姿态识别-3d姿态识别
深度学习小白学习路线
YOLOv5与骨龄识别 YOLOv5You Only Look Once version 5是一种基于深度学习的实时目标检测模型以其高效性和准确性著称。在骨龄识别场景下YOLOv5可以被训练用来自动定位X光片中的手部或手腕骨骼结构作为预处理步骤以便后续进行骨龄分析。。
YOLOv5训练阶段基于yolov5 release 7.0版本Python 3.11.0和PyTorch 2.1.0.dev20230703由于训练过程中需要float64但Metal不支持float64所以采用了CPU训练。我们使用了yolov5s的官方预训练权重。 骨龄识别 骨龄识别是一种利用医学影像评估个体生长发育阶段的技术它通过对儿童或青少年的手腕或膝关节等部位的X射线图像进行分析对比标准骨龄图谱来预测个体生理年龄。结合YOLOv5首先对X光图像进行目标检测准确标出手部关键骨骼结构随后这部分区域会被送入专门设计的骨龄分类模型进行详细的骨龄分期判断。 yolov5阶段项目结构 图像数据handbone/data/orignal_data/Image 数据标签handbone/data/orignal_data/Annotations 标签类别handbone/data/ImageSets/label_list.txt 代码文件 handbone/data/orignal_data/ImageSets/get_list.py 将数据集分为train、trainval以及val并将对应文件名字存储于handbone/data/orignal_data/ImageSets中train.txttrainval.txtval.txt handbone/data/create_label.py将handbone/data/original_data中的数据集转换为适用于目标检测模型训练的标签文件和图像文件并将文件保存在handbone/data/images和handbone/data/labels 并将三组数据集对应的文件路径保存在handbone/data/train.txt handbone/data/trainval.txt handbone/data/val.txt 使用yolo官方训练脚本进行模型的训练训练好的权重保存在runs/train/exp/weights/best.pt。
使用resnet18进行骨龄预测 (handbone/data/arthrosis中有关于骨龄计算相关内容) PyQt框架 PyQt是一个Python绑定的图形用户界面应用程序开发框架基于Qt库构建。在骨龄识别系统中PyQt可用于构建直观易用的桌面应用程序界面实现如图像上传、显示、预处理、结果展示等功能。开发者可以通过PyQt编写前后端交互逻辑使得医生或者其他用户能够方便地导入X光片运行YOLOv5进行骨龄相关部位的检测并在界面上实时显示检测结果和最终的骨龄分析报告。
数据集
中有九种关节类别分别为「DIP, DIPFirst, MCP, MCPFirst, MIP, PIP, PIPFirst, Radius, Ulna」每种类别有11个等级根据性别来打分根据分数推断骨龄
。 handbone/arthrosis_data_util.py使用自适应直方图均衡化(CLAHE)与随机旋转对图像进行增强处理。 handbone/arthrosis_datalist.py将图像进行数据划分9:1同时将对应文件路径保存在每种类别的文件夹中 handbone/arthrosis_dataset.py主要训练过程的dataloader其中统一的输入数据的格式并进行一定的数据增强 handbone/arthrosis_trainer.py模型训练的主程序主要框架网络是resnet18但将第一层的输入改为1244244输出改为对应类别数并将每类最优模型保存在./params中 handbone/common.py提供了一些计算和处理手骨骨龄相关的功能包括筛选手骨骨节、计算骨龄、生成报告等功能 由于pytorch在训练过程中的loss函数出现了总线错误我们将部分代码重新基于keras编写keras_datasets.py, keras_trainer.py, keras_common.py 其他部分也是基于keras实现 handbone/hand_bone_detect.py handbone/hand_view.py handbone/main.py
分类算法
骨龄分类算法是整个流程的关键部分它用于对手部骨骼特征进行量化并映射到相应的骨龄阶段。在YOLOv5完成骨骼定位后提取出的骨骼特征将输入至分类模型可能是传统的统计学方法或者是深度学习模型如卷积神经网络CNN来进行精细化的骨龄分期预测。
代码
#全部代码----》 qq1309399183
class MainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__()self.setupUi(self)self.bind_slots()# 加载yolov5模型本地训练好的self.mode torch.hub.load(./,custom,path./runs/train/exp/weights/best.pt,sourcelocal)self.mode.eval()self.mode.conf 0.5 # 置信度print(yolov5模型加载完成)# Load other keras modelsself.parm {}for key, value in keras_common.arthrosis.items():if value[0] in self.parm:continueResNet18, preprocess_input Classifiers.get(resnet18)base_model ResNet18((224, 224, 1), weightsNone, include_topFalse)model Sequential()model.add(base_model)model.add(Flatten())model.add(Dense(value[1]))# Load weightsmodel.load_weights(fparams/{value[0]})self.parm[value[0]] modelprint(九个模型加载完成)# 信号 槽函数def btn_open_img(self):print(点击按钮)file_path QFileDialog.getOpenFileNames(self, dirhandbone/data/images, filter*.png;*.jpeg;*.jpg)if file_path[0]:# 选择图片print(file_path[0][0])# 回显手骨x光片self.label_2.setPixmap(QPixmap(file_path[0][0]))# 获取性别sex boy if self.radioButton.isChecked() else girlprint(sex)# 侦测result hand_bone_detect.detect(self.mode, sex , file_path[0][0], self.parm)# 显示检测结果self.label_3.setText(result)# 绑定槽def bind_slots(self):self.pushButton.clicked.connect(self.btn_open_img)if __name__ __main__:app QApplication(sys.argv)window MainWindow()window.show()app.exec()最后计算机视觉、图像处理、毕业辅导、作业帮助、代码获取远程协助代码定制私聊会回复!
##全部代码code--》:qq1309339183