Construir la red CTPN (basado en ventanas y tensorflow)

2.1.1.CTPN Introducción

modelo CTPN incluye tres partes, a saber una capa de convolución, la capa de Bi-LSTM, estructura de capas totalmente conectado como se muestra a continuación

Extracción de Características

Aquí Insertar imagen Descripción

LSTM
Aquí Insertar imagen Descripción

resultados de agregación:

Aquí Insertar imagen Descripción

proceso ctpn
continuación ctpn es así como una línea de texto a la caja fuera de él, que es la primera en esta línea para cada palabra que sale de la caja, a continuación, poner todas las palabras de la combinación de la caja, se obtiene una línea de cuadro de texto, entonces es cómo poner cada caja de palabras fuera de él, y esto es que, al igual que la detección de blancos, dibuja las ideas más rápido RNN, y el mapa última característica para cada píxel genera varios ancor, coincide con el verdadero marco mayor ancor responsables de la previsión, después de cada carácter se envía entonces a la predicción ancor red lstm extracción de características, y luego a las capas totalmente conectadas, la clasificación del nivel de confianza objetivo, la regresión desplazada lateralmente punto central, el punto central del retorno vertical, vertical, longitudinal, más de la formación ancor pronóstico para cada texto con get compensar entrenado predicen ancor revisó cada personaje y, a continuación, ancor tras la fusión de todas las enmiendas obtener una línea de texto del cuadro de predicción
Nota:
¿por qué cada personaje la generación de una red lstm ancor primera predicción para extraer una característica, y luego se envía a la capa de conexión completa de clasificación y regresión, y una red tal como la fa detección de objetivos generales RCNN ster puede estar conectado directamente a la regresión de capa completa y clasificación, la razón es porque como un objetivo general detecta red de detección que son las personas, ah, animales ah, hay otros objetivos en una imagen de destino, ah, que contexto no es el medio, y cada carácter de una línea de texto que son todas contexto, es necesario generar cada carácter se envía entonces lstm ancor cuentan extractos, y luego volver y clasificación.

2.1.2 Instalación de NMS y Bbox

GIT clon descarga https://github.com/eragonruan/text-detection-ctpn

Git Después de descargar ctpn, para llevar a cabo los siguientes pasos para generar nms.so y un bbox.so (por lo que es archivos de la biblioteca dinámica Linux)
NMS y bBox utilidades están escritos en Cython, de ahí que haya que construir la primera en la biblioteca.
Utils Cd / BBOX
+ X make.sh la chmod
./make.sh

Porque yo estaba Windows7, por lo make.sh directamente los archivos abiertos, ver el contenido en su interior, se puede instalar python setup.py ejecutar realmente.
Debido a que es ventanas, por lo que no hay generación nms.so y una bbox.so. Pero generada bbox.cp37-win_amd64.pyd, nms.cp37-win_amd64.pyd ( PYD otros idiomas escritos en la biblioteca de Python), se puede ver cómo los capítulos de Windows utilizan estos dos archivos.

2.1.3.Cython

Como se mencionó anteriormente, es necesario instalar Cython. PIP instalar Cython.

Lenguaje C es un lenguaje compilado, Python es un lenguaje interpretado, en definitiva, se trata de un plazo de tiempo de ejecución progresiva Python, requerido para implementar el compilador, y C necesidad de ser compilado antes de ejecutar. Así que imagina, si ejecuta antes, es necesario pre-compilados, entonces, de hecho hay una sensación de "Dios perspectiva", naturalmente, se puede hacer un montón de optimización, lo que permite la ejecución de código más rápido. La aparición de Cython es tal fin, por lo que Python puede ser compilado y luego ejecutado. porción Cython que comprende un lenguaje C y cambios, y que comprende un conjunto completo de lenguaje lenguaje pyhton. Cython una lengua está implementado en Python que se puede utilizar para escribir extensiones de Python, lo utilizan para escribir la biblioteca se puede cargar a través de la importación, un rendimiento más rápido que Python. Cython donde se puede cargar una extensión de Python (como matemáticas importación), también se puede cargar la biblioteca de archivos de cabecera C (como por ejemplo: extern cdef de "math.h"), de forma alternativa, se puede usar para escribir código Python. La parte clave del módulo de extensión C se reescribe. Cython poder reside en el Python y C se pueden combinar, por lo que se ve como códigos de lenguaje Python tiene Cython C y velocidad similar.

2.1.4. Instalación de VC ++

El error se produjo error durante la ejecución de python setup.py install contenidos make.sh del archivo: No se puede encontrar vcvarsall.bat. Es necesario instalar VC ++, C Cython voz ambiente necesidad él. He instalado la versión VC ++ verde no funciona, reemplace la instalación de Visual Studio 2017, seleccione el tapón de vc ++.

Mi equipo de más edad que, Visual Studio 2019 no está instalado, los resultados anteriores sobre la seguridad de 2017. No es posible encontrar vcvarsall.bat error no se informa, y el siguiente error:
C: \ Datos de programa \ anaconda3 \ incluyen la \ pyconfig.h (59 ): grave C1083 de error: no puede abrir incluir
archivo: "io.h": no existe el fichero o directorio
Aquí Insertar imagen Descripción

Con el tiempo mediante herramientas de instalación de Visual Studio, instalar las ventanas 10 SDK se puede ejecutar correctamente.
Características de C ++ Herramientas de generación Core 1.Visual.
2.VC ++ 2017 V141 conjunto de herramientas (x86, x64)
3.Visual C ++ 2017 Redistributable Actualizar
4.Windows 10 SDK (10.0.16299.0) para Escritorio C ++
Aquí Insertar imagen Descripción

2.1.5. Ejecutar demo Ctpn

download el archivo CKPT desde la unidad GOOGL o Baidu yun ( Este paso también es necesario, CKPT ser modelo de pre-formados)
put checkpoints_mlt / texto-en-temporizado color Petri Net Detection / (Volver archivo descargado)
put en su ImagesRF Libres de los Datos / Demostración , en los resultados por se guardará en los datos / RES y de demostración se ejecutan en la raíz
de Python ./main/demo.py
finalmente puede ejecutar la demo, pero todavía hay muchos problemas que resolver, como la compatibilidad TensorFlow, ventanas y otros problemas, detalles consulte la siguiente sección.

2.1.6.Opencv

Ejecutar pitón ./main/demo.py Veces el siguiente error: ModuleNotFoundError: Sin módulo denominado 'cv2'

Por lo tanto, la necesidad de instalar OpenCV, el comando es: pip instalar OpenCV-pitón
dirección de espejo interno: https: //pypi.tuna.tsinghua.edu.cn/simple/opencv-python/

OpenCV es una potente biblioteca de procesamiento de imágenes y visión por ordenador que implementa una gran cantidad de algoritmos útiles.
Tabla 1: módulos OpenCV actuales tienen
módulo describe
Core El módulo comprende una estructura de base y la biblioteca de funcionamiento básico de OpenCV.
módulo de procesamiento de imagen básica Improc que comprende una conversión de la imagen, filtrar y similares que comprende una operación de convolución.
En Highgui OpenCV 3.0, la imcodecs dividido, videoio y highgui tres partes.

Este módulo se puede utilizar para mostrar imágenes comprende una interacción del usuario o una función de entrada simple. Esto puede ser visto como un conjunto de herramientas de Windows muy ligero interfaz de usuario.
Vídeo Este módulo contiene funciones para leer y escribir de vídeo arroyos.
Calib3d Este módulo comprende una única calibración, una pluralidad de cámaras y un algoritmo de binocular.
Este módulo comprende medios para detectar Feature2d, la descripción y puntos de característica búsqueda de algoritmo.
Este módulo contiene Objdectect detectar un objetivo específico, tal como la cara o el algoritmo de peatones. Formación y detector se pueden utilizar para detectar otros objetos.
sí ml módulo de aprendizaje automático es un módulo muy completo que contiene una gran cantidad de aprendizaje de máquina algoritmos y estos algoritmos OpenCV puedo y tipo de datos interacción natural.
Flann Flann significa "rápido biblioteca más cercana." Esta biblioteca contiene algunas de las formas en las que no se puede usar directamente, pero funcionará en otros módulos en los datos centralizados llamarla la búsqueda del vecino más cercano.
GPU se divide en una pluralidad de módulos en el OpenCV cuda *.

GPU módulo de optimización de la función es principalmente en la aplicación CUDA GPU, además, hay algunas funciones sólo para la GPU. Algunas de estas funciones pueden devolver buenos resultados, pero requiere un buen suficiente recursos informáticos, si no hay ningún hardware GPU, no habrá ninguna actualización.
Photo Se trata de un módulo bastante nuevo, algunas de las funciones de la herramienta contiene la fotografía computacional.
Se trata de una aplicación sofisticada proceso de costura de la imagen de mosaico módulo. Esta es una característica nueva en la biblioteca, pero, al igual que el módulo de fotos, ya que se espera que esta zona para tener un gran crecimiento en el futuro.
En el que no es libre OpenCV 3.0, se mueve opencv_contrib / xfeatures2d.

OpenCV contiene protegida por patentes o por los límites de uso (como algoritmo SIFT). Estos algoritmos están aislados en sus propios módulos para indicar que se necesita para hacer un trabajo especial antes de que puedan ser utilizados en productos comerciales.
Contrib en OpenCV 3.0, la fusión en el opencv_contrib.

Este módulo contiene algunas nuevas, no se han integrado en el material de la biblioteca OpenCV.
En OpenCV 3.0 en Legacy, fue cancelado.

Este módulo contiene algunas de las cosas viejas no se ha eliminado por completo.
En el OpenCV OCL 3,0, se cancela y se sustituye por T-API.

Este es un módulo relativamente nuevo, y se puede considerar similar al módulo de la GPU, que implementa el estándar de programación paralela abierta Khronos OpenCL. Aunque las características del módulo es ahora mucho menor que el módulo de GPU, pero el objetivo es proporcionar módulo OCL puede ejecutar cualquier GPU u otro dispositivo paralelo se pueden montar en los Khronos. Esto está en contraste módulo GPU aguda, que utiliza CUDA Nividia herramientas de desarrollo, y por lo tanto sólo el trabajo en el dispositivo Nividia GPU.

2.1.7.Tensorflow 2.0 与 contrib

Mi instalación local es TensorFlow2.0, está dando pitón plazo ./main/demo.py, ImportError: Sin módulo denominado 'tensorflow.contrib'. Tf tf.contrib 2,0 Ba es cortado. módulos contrib crecen más allá de equipo TensorFlow (en un repo en) rango puede ser mantenido.
Aquí Insertar imagen Descripción

oficial tensorflow localizar el repositorio contrib es: cualquier código en este directorio sin apoyo oficial, puede ser cambiado o eliminado en cualquier momento. En cada directorio tiene un propietario designado. Se tiene la intención de incluir características y contribuciones adicionales con el tiempo se fusionaron en el núcleo TensorFlow pero su interfaz todavía podría cambiar, o la necesidad de hacer algunas pruebas para ver si se puede conseguir una mayor aceptación. (De aquí en adelante incluyendo Slim) tensorflow no compatible de forma nativa.
tensorflow.contrib.layers
tf.contrib.layers.xavier_initializer (): manera inicializar una matriz de peso clásico;

TensorFlow versión 2.x abandonará por completo la interfaz TF-delgado, actualizado programa de interfaz TF-delgado tiene una carga de trabajo mayor. El sitio web oficial de la orientación recomendada dada es: si programa de interfaz manualmente TF-delgado en tf.layers interfaz, usted cumple con el uso básico, y si usted quiere combinar con la versión 2.x TensorFlow más de cerca, se puede entonces convertir como interfaz tf.keras.

Parece que sólo volvió tensorflow1.x de nuevo, me retiraba 1.15.0, Cptn reescritura de la carga de trabajo contirb debe ser relativamente grande.

Pip instalar -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow == 1.15.0
velocidad de instalación de imagen más rápido doméstica.
Aquí Insertar imagen Descripción

2.1.8.Windows

Mi ordenador es Windows 7, pero Cptn (texto-detección-ctpn) se basa en el git linux conseguir. Cuando se ejecuta ./main/demo.py pitón, todavía se encuentra bbox.so archivo. Así es como los colegas para proporcionar un problema con Git, me encontré a través de un local. Https://github.com/eragonruan/text-detection-ctpn/issues/359 referencia.

mi entorno es:
Windows 10,
python3.7,
tensorflow1.13,
vs2019
paso 1: realizar un cierto cambio
cambio "np.int_t" a “np.intp_t” en la línea 25 del archivo lib \ utils \ Bbox \ nms.pyx
parecer lo contrario "ValueError: desajuste Buffer dtype, que se espera 'int_t', pero tiene 'mucho tiempo'" en el paso 6.
paso 2: Presente updata c
ejecutar: cd your_dir \ text-detección-ctpn-master \ lib \ utils \ Bbox
ejecutar: Bbox Cython .pyx
ejecutar: Cython nms.pyx
paso 3: crear el archivo de configuración como setup_new.py
numpy importación como np
de distutils.core configuración de importación
de Cython.Build cythonize importación
de importación distutils.extension Extensión
numpy_include = np.get_include ()
configuración (ext_modules = cythonize ( “bbox.pyx”), include_dirs = [numpy_include])
de configuración (ext_modules = cythonize ( “nms.pyx”), include_dirs = [numpy_include])
Paso 4: archivo .pyd acumulación
ejecutar: setup_new pitón. py instalar
copia Bbox / build / bbox.cp36-win_amd64.pyd y cython_nms.cp36-win_amd64.pyd a your_dir \ text-detección-ctpn-master \ lib \ utils \ Bbox
paso 5: ejecutar demostración
ejecutar: cd your_dir \ texto- detección-ctpn-master
ejecutar: ./ctpn/demo.py pitón

2.1.9.CTPN demostración ejecutar correctamente

./main/demo.py pitón Run

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Correr hace Fotos:
Aquí Insertar imagen Descripción

Correr detrás de las imágenes:
Aquí Insertar imagen Descripción

Publicado 21 artículos originales · alabanza ganado 18 · vistas 1457

Supongo que te gusta

Origin blog.csdn.net/zephyr_wang/article/details/104200499
Recomendado
Clasificación