未验证 提交 92421f06 编写于 作者: 朱本福 提交者: GitHub

As a result, the LPRNet algorithm may be used to create embedded solutions for...

As a result, the LPRNet algorithm may be used to create embedded solutions for LPR that feature high level accuracy even on challenging Chinese license plates.

LPRNet is a real-time framework for high-quality
license plate recognition supporting template and
character independent variable-length license plates,
performing LPR without character pre-segmentation,
trainable end-to-end from scratch for different national
license plates.
上级 830d3d98
========================================================================
控制台应用程序:ocr_test 项目概述
========================================================================
应用程序向导已为您创建了此 ocr_test 应用程序。
本文件概要介绍组成 ocr_test 应用程序的每个文件的内容。
ocr_test.vcxproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
ocr_test.vcxproj.filters
这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
ocr_test.cpp
这是主应用程序源文件。
/////////////////////////////////////////////////////////////////////////////
其他标准文件:
StdAfx.h, StdAfx.cpp
这些文件用于生成名为 ocr_test.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
/////////////////////////////////////////////////////////////////////////////
其他注释:
应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
/////////////////////////////////////////////////////////////////////////////
附加库:
libjpeg.lib
libpng.lib
zlib.lib
///////////////////////////////////////////////////////////////////////
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "bktree.h"
static int write_string(BKTree * bktree, char * string, unsigned char len);
static BKNode * write_new_record(BKTree * bktree, char * string, unsigned char len);
BKTree * bktree_new(int (* distance)(char *, int, char *, int, int)) {
BKTree * bktree = (BKTree *)malloc(sizeof(BKTree));
bktree->tree_size = BKTREE_TREE_SIZE;
bktree->tree = (BKNode *)malloc(bktree->tree_size);
bktree->tree_cursor = bktree->tree;
bktree->strings_size = BKTREE_STRINGS_SIZE;
bktree->strings = (char*)malloc(bktree->strings_size);
bktree->strings_cursor = bktree->strings;
bktree->size = 0;
bktree->distance = distance;
return bktree;
}
void bktree_destroy(BKTree * bktree) {
free(bktree->tree);
free(bktree->strings);
free(bktree);
}
BKNode * bktree_add(BKTree * bktree, char * string, unsigned char len) {
if(len > BKTREE_STRING_MAX || len == 0)
return NULL;
if(bktree->size == 0) {
return write_new_record(bktree, string, len);
}
BKNode * node = (BKNode *) bktree->tree;
while(node) {
char * node_str = BKTREE_GET_STRING(bktree, node->string_offset);
int node_str_len = BKTREE_GET_STRING_LEN(bktree, node->string_offset);
int d = bktree->distance(node_str, node_str_len, string, len, -1);
if(d == 0)
return BKTREE_OK;
if(node->next[d] > 0) {
node = bktree->tree + node->next[d];
} else {
BKNode * new_node = write_new_record(bktree, string, len);
node->next[d] = new_node - bktree->tree;
return new_node;
}
}
return NULL;
}
// BKResult * bktree_result_new(BKResult * next, BKNode * node, int distance) {
// BKResult * result = (BKResult *)malloc(sizeof(BKResult));
// result->next = next;
// result->distance = distance;
// result->string_offset = node->string_offset;
//
// return result;
// }
void inner_query(BKTree * bktree, BKNode * node, char * string, unsigned char len, int max, std::vector<BKResult>& res) {
int d = bktree->distance(BKTREE_GET_STRING(bktree, node->string_offset), BKTREE_GET_STRING_LEN(bktree, node->string_offset), string, len, -1);
int start = d - max < 1 ? 1 : d - max;
int stop = d + max + 1;
if(stop >= BKTREE_STRING_MAX)
stop = BKTREE_STRING_MAX - 1;
if(d <= max) {
// *result_ptr = bktree_result_new(*result_ptr, node, d);
BKResult r;
r.distance = d;
int len = bktree->strings[node->string_offset];
char* start = bktree->strings + node->string_offset + 1;
char* end = start + len;
r.str = std::string(start,end);
res.push_back(r);
}
int i;
for(i = start; i <= stop; i++) {
if(node->next[i] > 0) {
inner_query(bktree, bktree->tree + node->next[i], string, len, max, res);
}
}
}
std::vector<BKResult> bktree_query(BKTree * bktree, char * string, unsigned char len, int max) {
std::vector<BKResult> res;
inner_query(bktree, bktree->tree, string, len, max, res);
return res;
}
void bktree_node_print(BKTree * bktree, BKNode * node) {
if(bktree == NULL) {
printf("bktree is null\n");
return;
}
if(node == NULL) {
printf("node is null\n");
return;
}
printf("String: %s\n", BKTREE_GET_STRING(bktree, node->string_offset));
printf("Offset: %ld\n", node - bktree->tree);
int i;
for(i = 0; i < BKTREE_STRING_MAX; i++)
printf("%d ", node->next[i]);
printf("\n");
}
static int write_string(BKTree * bktree, char * string, unsigned char len) {
while(bktree->strings_cursor - bktree->strings + len + 2 >= bktree->strings_size) {
int cursor_offset = bktree->strings_cursor - bktree->strings;
char * old_strings = bktree->strings;
bktree->strings = (char*)malloc(bktree->strings_size * 2);
memcpy(bktree->strings, old_strings, bktree->strings_size);
free(old_strings);
//printf("old ptr: %p\n", old_strings);
//printf("new ptr: %p\n", bktree->strings);
bktree->strings_size *= 2;
bktree->strings_cursor = bktree->strings + cursor_offset;
}
int original_offset = bktree->strings_cursor - bktree->strings;
*(bktree->strings_cursor) = len;
memcpy(bktree->strings_cursor + 1, string, len);
*(bktree->strings_cursor + len + 1) = '\0';
bktree->strings_cursor += len + 2;
return original_offset;
}
static BKNode * write_new_record(BKTree * bktree, char * string, unsigned char len) {
BKNode * node = bktree->tree_cursor++;
node->string_offset = write_string(bktree, string, len);
int i;
for(i = 0; i < BKTREE_STRING_MAX; i++)
node->next[i] = 0;
bktree->size++;
return node;
}
\ No newline at end of file
#define BKTREE_STRINGS_SIZE 4096
#define BKTREE_TREE_SIZE 1147483648
#define BKTREE_STRING_MAX 24
#define BKTREE_OK 0
#define BKTREE_FAIL 1
#define BKTREE_GET_STRING(bktree, string_offset) (bktree->strings + string_offset + 1)
#define BKTREE_GET_STRING_LEN(bktree, string_offset) (*(bktree->strings + string_offset))
#include <string>
#include <vector>
typedef struct {
long string_offset;
int next[BKTREE_STRING_MAX];
} BKNode;
typedef struct {
int size;
BKNode * tree;
BKNode * tree_cursor;
size_t tree_size;
char * strings;
char * strings_cursor;
size_t strings_size;
// word1, len(word1), word2, len(word2), max
int (* distance)(char *, int, char *, int, int);
} BKTree;
struct BKResult_s {
int distance;
std::string str;
//struct BKResult_s * next;
};
typedef struct BKResult_s BKResult;
BKTree * bktree_new(int (* distance)(char *, int, char *, int, int));
void bktree_destroy(BKTree * bktree);
BKNode * bktree_add(BKTree * bktree, char * string, unsigned char len);
void bktree_node_print(BKTree * bktree, BKNode * node);
std::vector<BKResult> bktree_query(BKTree * bktree, char * string, unsigned char len, int max);
\ No newline at end of file
此差异已折叠。
path = D:\ocr\plate_card_BLSTM\testData\plate_test_pic\chepai
startNum = 0
path = C:\plate_card_BLSTM\testData\test
startNum = 0
#include <stdlib.h>
#include <string.h>
#include "levenshtein.h"
static int minimum(int a,int b,int c)
/*Gets the minimum of three values*/
{
int min=a;
if(b<min)
min=b;
if(c<min)
min=c;
return min;
}
int levenshtein_distance(char *s, int n, char*t, int m, int noop)
/*Compute levenshtein distance between s and t*/
{
//Step 1
int k,i,j,cost,*d,distance;
if(n!=0&&m!=0)
{
d=(int*)malloc((sizeof(int))*(m+1)*(n+1));
m++;
n++;
//Step 2
for(k=0;k<n;k++)
d[k]=k;
for(k=0;k<m;k++)
d[k*n]=k;
//Step 3 and 4
for(i=1;i<n;i++)
for(j=1;j<m;j++)
{
//Step 5
if(s[i-1]==t[j-1])
cost=0;
else
cost=1;
//Step 6
d[j*n+i]=minimum(d[(j-1)*n+i]+1,d[j*n+i-1]+1,d[(j-1)*n+i-1]+cost);
}
distance=d[n*m-1];
free(d);
return distance;
}
else
return -1; //a negative return value means that one or both strings are empty.
}
int levenshtein(char * s1, int l1, char * s2, int l2, int threshold) {
int * prev_row, * curr_row;
int col, row;
int curr_row_min, result;
int offset = 0;
/* Do the expensive calculation on a subset of the sequences, if possible, by removing the common prefix. */
while (s1[offset] == s2[offset]) {
offset++;
}
/* Do the expensive calculation on a subset of the sequences, if possible, by removing the common postfix. */
while ((l1-1 > offset) && (l2-1 > offset) && (s1[l1-1] == s2[l2-1])) {
l1--;
l2--;
}
l1 -= offset;
l2 -= offset;
/* The Levenshtein algorithm itself. */
/* s1= */
/* ERIK */
/* */
/* 01234 */
/* s2=V 11234 */
/* E 21234 */
/* E 32234 */
/* N 43334 <- prev_row */
/* S 54444 <- curr_row */
/* T 65555 */
/* R 76566 */
/* A 87667 */
/* Allocate memory for both rows */
prev_row = (int*)malloc(l1+1);
curr_row = (int*)malloc(l1+1);
if ((prev_row == NULL) || (curr_row == NULL)) {
return -1;
}
/* Initialize the current row. */
for (col=0; col<=l1; col++) {
curr_row[col] = col;
}
for (row=1; row<=l2; row++) {
/* Copy the current row to the previous row. */
memcpy(prev_row, curr_row, sizeof(int)*(l1+1));
/* Calculate the values of the current row. */
curr_row[0] = row;
curr_row_min = row;
for (col=1; col<=l1; col++) {
/* Equal (cost=0) or substitution (cost=1). */
curr_row[col] = prev_row[col-1] + ((s1[offset+col-1] == s2[offset+row-1]) ? 0 : 1);
/* Insertion if it's cheaper than substitution. */
if (prev_row[col]+1 < curr_row[col]) {
curr_row[col] = prev_row[col]+1;
}
/* Deletion if it's cheaper than substitution. */
if (curr_row[col-1]+1 < curr_row[col]) {
curr_row[col] = curr_row[col-1]+1;
}
/* Keep track of the minimum value on this row. */
if (curr_row[col] < curr_row_min) {
curr_row_min = curr_row[col];
}
}
/* Return nil as soon as we exceed the threshold. */
if (threshold > -1 && curr_row_min >= threshold) {
free(prev_row);
free(curr_row);
return -1;
}
}
/* The result is the last value on the last row. */
result = curr_row[l1];
free(prev_row);
free(curr_row);
return result;
}
\ No newline at end of file
int levenshtein(char * s1, int l1, char * s2, int l2, int threshold);
int levenshtein_distance(char *s, int n, char*t, int m, int noop);
\ No newline at end of file
此差异已折叠。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{2CC545B1-643B-4307-9D90-13E93E8FEBD3}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ocr_test</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 9.2.props" />
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<LibraryPath>F:\boost_1_57_0\stage\lib;F:\opencv\build\x64\vc14\staticlib;..\..\tools_bin;$(LibraryPath)</LibraryPath>
<IncludePath>..\..\..\boost_1_57_0;F:\opencv\build\include;..\libClassification;..\..\include;$(IncludePath)</IncludePath>
<OutDir>..\..\tools_bin\</OutDir>
<TargetName>$(ProjectName)d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<LibraryPath>..\..\opensource\opencv\lib;..\..\opensource\boost_1_57_0\lib;..\..\tools_bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64;$(LibraryPath)</LibraryPath>
<IncludePath>..\..\opensource\boost_1_57_0;..\..\opensource\opencv\include;..\libClassification;..\..\include;..\..\3rdparty\include;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include;..\..\src\;..\..\3rdparty\include\openblas;$(IncludePath)</IncludePath>
<OutDir>..\..\tools_bin\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_core2410d.lib;opencv_highgui2410d.lib;opencv_imgproc2410d.lib;libjpegd.lib;libpngd.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;GLOG_NO_ABBREVIATED_SEVERITIES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_core340.lib;opencv_highgui340.lib;opencv_imgcodecs340.lib;opencv_imgproc340.lib;opencv_objdetect340.lib;opencv_ml340.lib;opencv_video340.lib;opencv_videoio340.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="config.txt" />
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\libClassification\caffe-gpu.h" />
<ClInclude Include="..\libClassification\classifierCaffe.h" />
<ClInclude Include="bktree.h" />
<ClInclude Include="common.h" />
<ClInclude Include="levenshtein.h" />
<ClInclude Include="public.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\caffe\layers\ctcpp_entrypoint.cpp" />
<ClCompile Include="bktree.cpp" />
<ClCompile Include="levenshtein.cpp" />
<ClCompile Include="ocr_test.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 9.2.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
<Text Include="config.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="bktree.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="levenshtein.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="public.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\libClassification\caffe-gpu.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="common.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\libClassification\classifierCaffe.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ocr_test.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="bktree.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="levenshtein.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="..\..\src\caffe\layers\ctcpp_entrypoint.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerCommandArguments>C:\plate_card_BLSTM\vs2013_caffe_BN_multi_label_kenel_w\model_platecar ..\model\test2.jpg</LocalDebuggerCommandArguments>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
\ No newline at end of file
此差异已折叠。
blank
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
\ No newline at end of file
152
152
152
\ No newline at end of file
此差异已折叠。
#pragma once
//-------------------------------------------------------------------------------------------------
#ifdef WIN32
#ifndef IMPORT
#define IMPORT __declspec(dllimport)
#endif
#ifndef EXPORT
#define EXPORT __declspec(dllexport)
#endif
#ifndef API
#define API __stdcall
#endif
#else
#ifndef IMPORT
#define IMPORT
#endif
#ifndef EXPORT
#define EXPORT
#endif
#ifndef API
#define API
#endif
#endif
//-------------------------------------------------------------------------------------------------
#ifndef interface
#define CINTERFACE
#define interface struct
#endif
//-------------------------------------------------------------------------------------------------
#ifndef min2
#define min2(a,b) (((a)<(b)) ? (a) : (b))
#endif
//-------------------------------------------------------------------------------------------------
#ifndef max2
#define max2(a,b) (((a)>(b)) ? (a) : (b))
#endif
//-------------------------------------------------------------------------------------------------
#ifndef _rect_
#define _rect_
struct rect{ int x0, y0, x1, y1; };
#define rectw(r) (r.x1-r.x0+1)
#define recth(r) (r.y1-r.y0+1)
#endif
//-------------------------------------------------------------------------------------------------
#ifndef byte
typedef unsigned char byte;
#endif
//-------------------------------------------------------------------------------------------------
#ifndef word
typedef unsigned short word;
#endif
此差异已折叠。
此差异已折叠。
此差异已折叠。
// stdafx.cpp : 只包括标准包含文件的源文件
// ocr_test.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"
// TODO: 在 STDAFX.H 中引用任何所需的附加头文件,
//而不是在此文件中引用
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: 在此处引用程序需要的其他头文件
#pragma once
// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
// 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
#include <SDKDDKVer.h>
此差异已折叠。
blank
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
\ No newline at end of file
152
152
152
\ No newline at end of file
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.pch
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\vc140.pdb
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\stdafx.obj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\levenshtein.obj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\bktree.obj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ctcpp_entrypoint.obj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.obj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.exe
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.ipdb
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.iobj
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.pdb
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.lib
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\tools_bin\ocr_test.exp
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\..\..\tools_bin\ocr_test.exe
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\cl.command.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\cl.read.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\cl.write.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\link.command.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\link.read.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\link.write.1.tlog
d:\ocr\plate_card_blstm\caffe_ocr-master_cudn5.1_cuda8.0_vs2014\caffe-vsproj\ocr_test\x64\release\ocr_test.tlog\ocr_test.write.1u.tlog
此差异已折叠。
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\STDAFX.CPP
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\STDAFX.CPP
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\STDAFX.CPP
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\BKTREE.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\CTCPP_ENTRYPOINT.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\LEVENSHTEIN.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\OCR_TEST.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN5.1_CUDA8.0_VS2014\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\STDAFX.OBJ
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\BKTREE.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\CTCPP_ENTRYPOINT.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\LEVENSHTEIN.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\OCR_TEST.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\STDAFX.OBJ
B^D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\BKTREE.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\CTCPP_ENTRYPOINT.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\LEVENSHTEIN.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\OCR_TEST.OBJ|D:\OCR\PLATE_CARD_BLSTM\CAFFE_OCR-MASTER_CUDN7_CUDA9.2_VS2014_WM_PLATECARD\CAFFE-VSPROJ\OCR_TEST\X64\RELEASE\STDAFX.OBJ
#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1
Release|x64|D:\ocr\plate_card_BLSTM\caffe_ocr-master_CUDN7_CUDA9.2_vs2014_WM_plateCard\caffe-vsproj\|
B^D:\ocr\plate_card_BLSTM\caffe_ocr-master_CUDN7_CUDA9.2_vs2014_WM_plateCard\caffe-vsproj\ocr_test\ocr_test.vcxproj
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册