// Tencent is pleased to support the open source community by making ncnn available.
//
// Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
//
// Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// https://opensource.org/licenses/BSD-3-Clause
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include <android/asset_manager_jni.h>
#include <android/bitmap.h>
#include <android/log.h>
#include <jni.h>
#include <string>
#include <vector>
#include <iostream>
using namespace std;
// ncnn
#include "layer.h"
#include "net.h"
#include "benchmark.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace cv;
static ncnn::UnlockedPoolAllocator g_blob_pool_allocator;
static ncnn::PoolAllocator g_workspace_pool_allocator;
#define ASSERT(status, ret) if (!(status)) { return ret; }
#define ASSERT_FALSE(status) ASSERT(status, false)
static ncnn::Net yolov5;
static ncnn::Net crnn;
static ncnn::Net color_net;
//static string plate_chars[68] = { "京", "沪", "津", "渝", "冀", "晋", "蒙", "辽", "吉", "黑",
// "苏", "浙", "皖", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤",
// "桂", "琼", "川", "贵", "云", "藏", "陕", "甘", "青", "宁",
// "新",
// "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
// "A", "B", "C", "D", "E", "F", "G", "H", "J", "K",
// "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V",
// "W", "X", "Y", "Z", "I", "O", "-"
//};
// crnn使用
string plate_chars[78] = { "#","京", "沪", "津", "渝", "冀", "晋", "蒙", "辽", "吉", "黑",
"苏", "浙", "皖", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤",
"桂", "琼", "川", "贵", "云", "藏", "陕", "甘", "青", "宁",
"新", "学", "警", "港", "澳", "挂", "使", "领", "民", "航",
"危",
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"A", "B", "C", "D", "E", "F", "G", "H", "J", "K",
"L", "M", "N", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z", "险", "品"};
#define ASSERT(status, ret) if (!(status)) { return ret; }
#define ASSERT_FALSE(status) ASSERT(status, false)
static vector<string> crnn_rec(const cv::Mat& bgr){
cv::Mat img = bgr;
//获取图片的宽
int w = img.cols;
//获取图片的高
int h = img.rows;
ncnn::Mat in = ncnn::Mat::from_pixels_resize(img.data, ncnn::Mat::PIXEL_BGR, w, h, 168, 48);
float mean[3] = { 149.94, 149.94, 149.94 };
float norm[3] = { 0.020319,0.020319,0.020319 };
//对图片进行归一化,将像素归一化到-1~1之间
in.substract_mean_normalize(mean, norm);
ncnn::Extractor ex = crnn.create_extractor();
ex.set_light_mode(true);
//设置线程个数
ex.set_num_threads(1);
//将图片放入到网络中,进行前向推理
ex.input("images", in);
ncnn::Mat feat_plate;
ncnn::Mat feat_color;
// color = ['黑色', '蓝色', '绿色', '白色', '黄色']
//获取网络的输出结果
ex.extract("129", feat_plate);
ex.extract("output_2", feat_color);
// int color_index = max_element(feat_color + 0, feat_color + 78) - feat_color;
cout<<feat_color.c<<endl;
cout<<feat_color.h<<endl;
cout<<feat_color.w<<endl;
// pretty_print(feat_color);
ncnn::Mat plate_mat = feat_plate;
ncnn::Mat color_mat = feat_color;
vector<string> final_plate_str{};
string finale_plate;
for (int q = 0; q < plate_mat.c; q++)
{
float prebs[21];
for (int x = 0; x < plate_mat.w; x++) //遍历十八个车牌位置
{
const float* ptr = plate_mat.channel(q);
float preb[78];
for (int y = 0; y < plate_mat.h; y++) //遍历68个字符串位置
{
preb[y] = ptr[x]; //将18个
ptr += plate_mat.w;
}
int max_num_index = max_element(preb + 0, preb + 78) - preb;
// cout<<"max_num_index"<<max_num_index<<endl;
prebs[x] = max_num_index;
}
//去重复、去空白a
vector<int> no_repeat_blank_label{};
int pre_c = prebs[0];
cout<<"pre_c"<<pre_c<<endl;
if (pre_c != 0) {
no_repeat_blank_label.push_back(pre_c);
}
for (int value : prebs)
{
if (value == 0 or value==pre_c) {
if (value == 0 or value == pre_c) {
pre_c = value;
}
continue;
}
no_repeat_blank_label.push_back(value);
pre_c = value;
}
// 下面进行车牌lable按照字典进行转化为字符串
string no_repeat_blank_c = "";
for (int hh : no_repeat_blank_label) {
no_repeat_blank_c += plate_chars[hh];
}
cout << "单个车牌:" << no_repeat_blank_c << endl;
final_plate_str.push_back(no_repeat_blank_c);
for (string plate_char : final_plate_str) {
cout << "所有车牌:" << plate_char << endl;
finale_plate += plate_char;
}
}
string str = finale_plate;
cout << str << endl;
float color_result[5];
for (int q = 0; q < color_mat.c; q++)
{
const float* ptr = color_mat.channel(q);
for (int y = 0; y < color_mat.h; y++)
{
for (int x = 0; x < color_mat.w; x++)
{
// printf("%f ", ptr[x]);
//cout << "1111:" << ptr[x];
color_result[x] = ptr[x];
}
ptr += color_mat.w;
// printf("\n");
}
printf("------------------------\n");
}
int color_code = max_element(color_result, color_result + 5) - color_result;
string color_names[5] = {
"黑色", "蓝色", "绿色", "白色", "黄色"
};
vector<string> plate_color(2);
plate_color[0] = str;
plate_color[1] = color_names[color_code];
return plate_color;
}
//static int color_rec_1(const cv::Mat& bgr){
//// ncnn::Net color_net;
////
//// color_net.load_param("color-sim.param");
//// color_net.load_model("color-sim.bin");
// //获取图片的宽
// int w = bgr.cols;
// //获取图片的高
// int h = bgr.rows;
//
// ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR2RGB, w, h, 34, 9);
//
// const float norm_vals[3] = { 1.f / (0.2569 * 255), 1.f / (0.2478 * 255), 1.f / (0.2174 * 255)};
//
// const float mean_vals[3] = { 0.4243f * 255.f, 0.4947f * 255.f, 0.434f * 255.f};
//
// in.substract_mean_normalize(mean_vals, norm_vals);
//
// ncnn::Extractor ex = color_net.create_extractor();
// //将图片放入到网络中,进行前向推理
// ex.input("input.1", in);
// ncnn::Mat feat_color;
// ex.extract("14", feat_color);
// ncnn::Mat m = feat_color;
// float color_result[3];
// for (int q = 0; q < m.c; q++)
// {
// const float* ptr = m.channel(q);
// for (int y = 0; y < m.h; y++)
// {
//
// for (int x = 0; x < m.w; x++)
// {
// printf("%f ", ptr[x]);
// //cout << "1111:" << ptr[x];
// color_result[x] = ptr[x];
// }
// ptr += m.w;
// prin
没有合适的资源?快使用搜索试试~ 我知道了~
基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共607个文件
h:318个
hpp:144个
cmake:62个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 176 浏览量
2024-05-19
09:34:47
上传
评论
收藏 49.2MB ZIP 举报
温馨提示
基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip基于ncnn模型实现android车辆识别车牌角度矫正车牌文本识别车牌颜色识别源码+模型+项目说明.zip
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 607 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/8b9566d6b7ee402eb11b3ab031c6660f_fl1768317420.jpg!1)
FL1768317420
- 粉丝: 4846
- 资源: 5725
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)