AI训练营第五天——汽车定损优化与完善

简介: 基于第四天作业的完善,第四天:https://developer.aliyun.com/article/777501

前言
本来想做内容安全方面的识别,但是由于python sdk的不完善加上本人技术有限,便在汽车定损的工作上加以完善,尽可能开发出可以应用的程序。


汽车定损
昨天做了一个简单的ui,本次任务需要在交互方面进行完善,包括选择文件,根据图片透明度显示损伤位置等。

思路
增加可视化,背景显示透明化的车,用返回的box值确定损伤位置,明确损伤程度
image.png
由于时间问题,无法将这个项目做到最佳优化,但是对我来说也做到了一定的进步。

全部代码

# from PySide2.QtWidgets import QDialog, QLabel, QGroupBox, QTextEdit, QPushButton, QCheckBox
from PIL import Image
from PySide2.QtWidgets import *
from PySide2.QtGui import *
from qtObj.widgetPickServer import *
from sofulan import req
import requests
import os

class GUI(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(600,400)
        self.setWindowTitle('车辆定损')
        self.mainlayout = QHBoxLayout()

        self.set_widgt()
        self.service = req()
        self.setLayout(self.mainlayout)
        self.show()
        self.filter = {1: '轻微刮擦', 2: '重度刮擦', 3: '轻度变形', 4: '中度变形', 5: '重度变形', 6: '未知损伤', 7: 'crack破损孔洞', 8: '翼子板保险杠缝隙', 9: '未知损伤', 10: '位置损伤'}

    def set_widgt(self):
        self.textarea = QTextEdit(self)
        self.textarea.setText('请选择文件')
        self.textarea.resize(200,100)

        self.commitbutton = QPushButton(self)
        self.commitbutton.setText("确定")
        self.commitbutton.clicked.connect(self.get_req)

        self.mainlayout.addWidget(self.textarea)
        self.mainlayout.addWidget(self.commitbutton)

    @staticmethod
    def cropImage(name, boxs,):
        box = tuple(boxs)
        img = Image.open('resouce.jpg')
        cropped = img.crop(box)
        # x,y = cropped.size
        # crop = cropped.resize((int((x*100/y)), 100), Image.ANTIALIAS)
        cropped.save('res/'+name+'.jpg')



    def get_req(self):

        url = 'https://current-cloud-oss.oss-cn-shanghai.aliyuncs.com/car/car.jpg'
        with open('resouce.jpg','wb') as f:
            res = requests.get(url)
            f.write(res.content)
        text = self.service.ApiFindDamage(url)
        # 创建水平布局
        widget = QWidget()
        new_widget_layout = QVBoxLayout()
        # widget.setLayout()
        # 取值
        text = json.loads(text)
        data = text['Data']
        elements = data['Elements']
        self.boxes = []
        self.fl = []

        for i in elements:
            crack_type = i['Type']
            score = i['Scores']
            box = i['Boxes']
            self.boxes.append(box)
            print(box)
            print(self.filter[int(crack_type)],end='\t')
            # print(score)
            for j in range(len(score)):
                if score[j] > 0:
                    label = QLabel(self)
                    print('损伤可能性:{}'.format(score[int(j)]))
                    self.cropImage(self.filter[int(crack_type)]+str(score[int(j)]), box)
                    # 添加子控件图片
                    # 图片处理

                    pix = QPixmap('res/'+self.filter[int(crack_type)]+str(score[int(j)])+'.jpg')
                    self.fl.append('res/'+self.filter[int(crack_type)]+str(score[int(j)])+'.jpg')
                    label.setPixmap(pix)

                    # label.setText(self.filter[int(crack_type)]+"  可能性"+str(score[int(j)]))
                    # ls.append(self.label)
                    new_widget_layout.addWidget(label)
        widget.setLayout(new_widget_layout)
        #self.mainlayout.addWidget(widget)
        showp = showpic(self.boxes, self.fl, self)
        self.mainlayout.addWidget(showp)

class showpic(QDialog):
    def __init__(self, box, fl, parent):
        super().__init__(parent=parent)
        self.box = box
        self.fl = fl
        self.setimg()
        # self.show()

    def setimg(self):
        self.proccess()
        pix = QPixmap('car_after.png')
        label0 = QLabel(self)
        label0.setPixmap(pix)
        self.setGeometry(0, 0, pix.width(), pix.height())
        label0.show()
        for i in range(len(self.box)):
            label = QLabel(self)
            # label1 = QLabel(self)
            # label1.setText(self.fl[i].replace(".jpg",''))
            # label.setGeometry(int((self.box[i][0]+self.box[i][2])/2), int((self.box[i][1])+self.box[i][3]/2),50,50)
            ps = QPixmap(self.fl[i])
            label.setPixmap(ps)
            label.setGeometry(self.box[i][0], self.box[i][1], self.box[i][2], self.box[i][3],)
            #                   left             upper            width          height

    def proccess(self):
        # if not os.path.isfile('car_after.png'):
            img = Image.open("car.jpg")
            img = img.convert('RGBA')  # 修改颜色通道为RGBA
            x, y = img.size  # 获得长和宽

            # 设置每个像素点颜色的透明度
            for i in range(x):
                for k in range(y):
                    color = img.getpixel((i, k))
                    color = color[:-1] + (100,)
                    img.putpixel((i, k), color)

            img.save("car_after.png")  # 要保存为.PNG格式的图片才可以


if __name__ == '__main__':
    app = QtWidgets.QApplication([])
    gui = GUI()
    sys.exit(app.exec_())
目录
相关文章
|
14天前
|
传感器 人工智能 自动驾驶
构建未来:利用AI技术优化城市交通系统
【4月更文挑战第27天】 随着城市化的快速发展,交通拥堵已成为全球城市的普遍问题。本文探讨了人工智能(AI)技术在缓解城市交通压力、提升交通效率方面的应用前景。通过分析智能信号控制、交通流量预测、自动驾驶车辆以及公共交通优化等关键技术的实际案例,评估了AI在现代交通系统中的潜力与挑战。本研究不仅展示了AI技术在改善城市交通中的有效性,同时也指出了实施过程中需要克服的技术和社会障碍。
|
1月前
|
人工智能 供应链 监控
AI汽车制造
AI融入汽车制造,涉及产品设计、生产流程及质量控制等环节。AI助设计师精准建模与仿真,提升设计效率;自动化装配线提高生产效率,减少人为错误;机器视觉检测保障生产稳定性;AI优化生产计划与资源分配,增强灵活性。在质量控制上,AI实现全过程监控,预测设备维护需求,防止故障影响。此外,AI还助力个性化生产与智能供应链管理,满足市场需求。尽管面临数据安全等挑战,但AI将持续推动汽车产业创新与发展。
23 3
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
倚天产品介绍|倚天性能优化—YCL AI计算库在resnet50上的优化
Yitian710 作为平头哥第一代ARM通用芯片,在AI场景与X86相比,软件生态与推理性能都存在一定的短板,本文旨在通过倚天AI计算库的优化,打造适合ARM架构的软件平台,提升倚天性能
|
3月前
|
人工智能 安全 物联网
MWC 2024联发科实力大展示:AI、汽车、卫星通信打头阵
近日,联发科参展全球知名的通信产业盛会MWC 2024(2024世界移动通信大会)上,展示出一系列在AI和移动通信技术等领域的最新突破。今年以“连接AI宇宙”(Connecting the AI-verse)为主题的展厅吸引了大量行业人士和媒体驻足观看,尤其现场生成式AI技术演示更是让大量与会者争先体验。
|
2月前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
14天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
8天前
|
传感器 人工智能 供应链
【AI 场景】如何应用 AI 来优化供应链管理
【5月更文挑战第3天】【AI 场景】如何应用 AI 来优化供应链管理
【AI 场景】如何应用 AI 来优化供应链管理
|
11天前
|
机器学习/深度学习 人工智能 监控
构建未来:利用AI技术优化城市交通系统
【4月更文挑战第30天】 在快速发展的城市环境中,交通拥堵已成为一个日益严重的问题。随着人工智能(AI)技术的不断进步,其在交通管理领域的应用展现出了巨大潜力。本文将探讨如何通过集成机器学习、深度学习和大数据分析等AI技术来优化城市交通系统。我们将讨论智能交通信号控制、实时交通流量监控、预测模型以及自动驾驶车辆如何共同作用于缓解交通压力,提升道路使用效率,并最终实现智能、可持续的交通生态系统。
|
18天前
|
存储 人工智能 JSON
【AI大模型应用开发】【RAG优化 / 前沿】0. 综述:盘点当前传统RAG流程中存在的问题及优化方法、研究前沿
【AI大模型应用开发】【RAG优化 / 前沿】0. 综述:盘点当前传统RAG流程中存在的问题及优化方法、研究前沿
56 0
|
18天前
|
人工智能 API Python
【AI大模型应用开发】1.1 Prompt Engineering(提示词工程)- 用OpenAI API实战,优化方法论总结
【AI大模型应用开发】1.1 Prompt Engineering(提示词工程)- 用OpenAI API实战,优化方法论总结
23 0