基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程 - 集成到web系统-识别历史记录实现

大家好,我是java1234_小锋老师,最近写了一套基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程,持续更新中,计划月底更新完,感谢支持。

视频在线地址:

https://www.bilibili.com/video/BV1BdUnBLE6N/

课程简介:

本课程采用主流的Python技术栈实现,分两套系统讲解,一套是专门讲PyTorch2卷积神经网络CNN训练模型,识别车牌,当然实现过程中还用到OpenCV实现图像格式转换,裁剪,大小缩放等。另外一套是基于前面Django+Vue通用权限系统基础上,加了车辆识别业务模型,Mysql8数据库,Django后端,Vue前端,后端集成训练好的模型,实现车牌识别。

基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程 - 集成到web系统-识别历史记录实现

1,识别历史记录后端实现

views.py里实现ListView

复制代码
# 分页查询车辆识别记录
class ListView(View):

    def post(self, request):
        data = json.loads(request.body.decode("utf-8"))
        pageNum = data['pageNum']  # 当前页
        pageSize = data['pageSize']  # 每页大小
        print(pageSize, pageNum)
        carListPage = Paginator(Lprs.objects.all(), pageSize).page(pageNum)
        obj_roles = carListPage.object_list.values()  # 转成字典
        cars = list(obj_roles)  # 把外层的容器转为List
        total = Lprs.objects.count()
        return JsonResponse(
            {'code': 200, 'carList': cars, 'total': total})

urls.py里加下list映射:

复制代码
path('list', ListView.as_view(), name='list'),  # 分页查询车辆识别历史记录信息

2,识别历史记录前端实现

History.vue里实现下:

复制代码
<template>
  <div class="app-container">
​
    <el-table :data="tableData" stripe style="width: 100%" >
      <el-table-column prop="id" label="编号" width="100" align="center"/>
      <el-table-column prop="carimage" label="汽车图片" width="300" align="center">
        <template v-slot="scope">
          <img :src="getServerUrl()+'media/carImages/'+scope.row.carimage" width="200" height="200"/>
        </template>
      </el-table-column>
      <el-table-column prop="result" label="识别结果" width="200" align="center"/>
      <el-table-column prop="create_time" label="识别时间"  align="center" :formatter="formatDate"/>
​
    </el-table>
    <el-pagination
        v-model:current-page="queryForm.pageNum"
        v-model:page-size="queryForm.pageSize"
        :page-sizes="[10, 20, 30, 40]"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
    />
​
  </div>
</template>
​
<script setup>
import requestUtil,{getServerUrl} from '@/utils/request'
import {ref} from "vue";
​
​
const tableData=ref([])
const total=ref(0)
const queryForm=ref({
  pageNum:1,
  pageSize:10
})
​
const id = ref(-1)
​
const formatDate=(row, column)=>{
  let date=new Date(row.create_time)
  return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+" "+date.getUTCHours()+":"+date.getMinutes()+":"+date.getSeconds()
}
​
const initCarList=async ()=>{
  const res=await requestUtil.post("lprs/list",queryForm.value)
  tableData.value=res.data.carList
  total.value=res.data.total
}
​
const handleSizeChange=(pageSize)=>{
  queryForm.value.pageSize=pageSize
  queryForm.value.pageNum=1
  initCarList()
}
​
const handleCurrentChange=(pageNum)=>{
  queryForm.value.pageNum=pageNum
  initCarList()
}
​
initCarList()
​
</script>
​
<style lang="scss" scoped>
​
.header {
  padding-bottom: 16px;
  box-sizing: border-box;
}
​
.el-pagination {
  float: right;
  padding: 20px;
  box-sizing: border-box;
}
​
::v-deep th.el-table__cell {
  word-break: break-word;
  background-color: #f8f8f9 !important;
  color: #515a6e;
  height: 40px;
  font-size: 13px;
​
}
​
.el-tag--small {
  margin-left: 5px;
}
</style>

3,运行测试

点击"历史记录"菜单:

相关推荐
0思必得011 分钟前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
User_芊芊君子24 分钟前
CANN图编译器GE全面解析:构建高效异构计算图的核心引擎
人工智能·深度学习·神经网络
沈浩(种子思维作者)25 分钟前
系统要活起来就必须开放包容去中心化
人工智能·python·flask·量子计算
爱吃大芒果27 分钟前
CANN神经网络算子库设计思路:ops-nn项目的工程化实现逻辑
人工智能·深度学习·神经网络
2301_7903009630 分钟前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
哈__40 分钟前
CANN加速VAE变分自编码器推理:潜在空间重构与编码解码优化
人工智能·深度学习·重构
m0_736919101 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
getapi1 小时前
实时音视频传输与屏幕共享(投屏)
python
觉醒大王1 小时前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
禁默1 小时前
Ops-Transformer深入:CANN生态Transformer专用算子库赋能多模态生成效率跃迁
人工智能·深度学习·transformer·cann