• No se han encontrado resultados

Análisis y desarrollo de la iteración 3

3.7. Desarrollo

3.7.6. Análisis y desarrollo de la iteración 3

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

PÁG. 105

Figura 3.17: Demo de la iteración 2 – módulo de importación del padrón de lectura Fuente: Elaboración propia

Figura 3.18: Demo de la iteración 2 - transferencia de datos al módulo de lectura Fuente: Elaboración propia

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

a) Iteración (sprint) 3

Para el desarrollo de la iteración 3 se fijó una duración de 15 días laborales es decir 3 semanas.

b) Pila del producto de la iteración 3

En la tabla 3.28 se muestra la pila del producto para la iteración 3.

TABLA 3.28: Pila del producto de la iteración 3 PILA DE PRODUCTO SPRINT 3

ID Nombre de la historia

Importancia Estimación Sprint Como probarlo Notas

4 Proceso de captura de la imagen del medidor electrónico

6 4 3 El módulo de lectura tiene los datos del cliente seleccionado del padrón de lectura en el módulo anterior, y además la opción de realizar la lectura, con la activación de la cámara principal del dispositivo móvil.

La imagen por capturar tiene que cumplir ciertas características para proceder con el OCR, y obtener los datos sin ningún margen de error.

Fuente: Elaboración propia

c) Sprint backlog

En esta fase de detalla las tareas y sub-tareas contenidas dentro de la iteración 3 que engloba las historias de usuarios relacionadas con la captura de la imagen del medidor. En la tabla 3.29 se detalla la pila de tareas de la iteración 3.

TABLA 3.29: Sprint backlog 3

Sprint Inicio Duración (días) Elementos del Producto Backlog

Días 30 Mayo-3 Junio 6-10 Junio 13-17 Junio

3 30-may-16 15 Captura y procesado de la

imagen

Id Tarea Delegado Estado Hora 20 20 20

4 Características de la cámara del dispositivo móvil Desarrollador 1 Finalizado X 4 Configuración de la cámara del dispositivo móvil Desarrollador 1 Finalizado X

4 Activación de la cámara Desarrollador 1 Finalizado X

4 Activación del flas y autofocus Desarrollador 1 Finalizado X

4 Codificación de la activación de la cámara Desarrollador 1 Finalizado X

4 Codificación de la activación del flas Desarrollador 1 Finalizado X

4 Captura de la imagen del medidor Desarrollador 1 Finalizado X

4 Procesamiento de la imagen del medidor Desarrollador 1 Finalizado X

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

PÁG. 107

d) Revisión del sprint

Tareas complementarias

La tabla 3.30 muestra las tareas que el desarrollador 1 ha terminado hasta el momento de la finalización de la iteración 3.

TABLA 3.30: Tareas complementarias iteración 3

Tarea asignada a: Bixbi Tapia Sueldo Estado Tareas: Completado Número de Tareas: 6 Id Nombre Tarea Nombre Proyecto Iteración Fecha Modificación

4

Descripción de las características de la cámara del

dispositivo móvil ALME 3 02-Junio-2016

4 Configuración de la cámara del dispositivo móvil ALME 3 02-Junio-2016

4 Activación de la cámara ALME 3 08-Junio-2016

4 Activación del flas y autofocus ALME 3 09-Junio-2016

4 Codificación de la activación de la cámara ALME 3 09-Junio-2016

4 Codificación de la activación del flas ALME 3 14-Junio-2016

4 Captura de la imagen del medidor ALME 3 15-Junio-2016

4 Procesamiento de la imagen del medidor ALME 3 16-Junio-2016

Fuente: Elaboración propia

Burn down chart

El gráfico 3.3 presenta el avance del proyecto hasta el momento de la finalización de la iteración 3.

Gráfico 3.3: Gráfico Burn Down Chart de la iteración 3 (Anexo B.3) Fuente: Elaboración propia

48

44 43 38

32 32 28

24 17

12 12 9

5 5

0 0 10 20 30 40 50 60

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Unidades restantes de Scrum

Días Burndown Chart

Actual Ideal

cc

Repositorio Institucional – UNAMBA - PERÚ

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

Código fuente de la iteración 3

El código fuente que se muestra a continuación se centra en gestionar la cámara, así que solo se va a mostrar el código más relevante.

Para el manejo de la cámara del dispositivo móvil es necesario los siguientes permisos añadidos en el manifiesto de Android:

<uses-permission android:name="android.permission.CAMERA"/>

<uses-feature android:name="android.hardware.camera.autofocus"/>

<uses-feature android:name="android.hardware.camera.flash"

android:required="false" />

<uses-feature android:name="android.hardware.camera" />

La clase “Camera” se utiliza para configurar los ajustes de captura de imagen, iniciar / detener la vista previa, hacer fotos, y recuperar los marcos para la codificación de vídeo.

Esta clase es un cliente para el servicio de la cámara, que gestiona el hardware real de la cámara.

Primero se procedió a activar la cámara como se observa en el código fuente de la tabla 3.31.

TABLA 3.31: Código fuente para la activación de la cámara

Fuente: Elaboración propia

Cargamos el hardware de la cámara para que muestre la transmisión en vivo en un SurfaceView.

TABLA 3.32: Código fuente para cargar hardware de la cámara Camera.AutoFocusCallback autoFocusCallback = new

Camera.AutoFocusCallback() { @Override

public void onAutoFocus(boolean success, Camera camera) {}

};

private MotorCamara(SurfaceHolder surfaceHolder){

public static Camera getCamera() { try {

return Camera.open();

} catch (Exception e) {

Log.e(TAG, "No se puede obtener Camera()");

return null;

} }

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

PÁG. 109

static public MotorCamara New(SurfaceHolder surfaceHolder){

Log.d(TAG, "Creación de un motor de cámara");

return new MotorCamara(surfaceHolder);}

public void requestFocus() { if (camera == null) return;

if (isOn()) {

camera.autoFocus(autoFocusCallback);}}

public void start() {

Log.d(TAG, "Ingresando MotorCamara - start ()");

this.camera = UtilCamara.getCamera();

if (this.camera == null) return;

Log.d(TAG, "Hardware de la cámara");

try {

this.camera.setPreviewDisplay(this.surfaceHolder);

this.camera.setDisplayOrientation(90);

this.camera.startPreview();

on = true;

Log.d(TAG, "Se inició la previsualización de MotorCamara");

} catch (IOException e) {

Log.e(TAG, "Error en setPreviewDisplay");

} }

public void stop(){

if(camera != null){

camera.release();

camera = null;}

on = false;

Log.d(TAG, "Deteniendo MotorCamara");

}

public void takeShot(Camera.ShutterCallback shutterCallback, Camera.PictureCallback rawPictureCallback, Camera.PictureCallback jpegPictureCallback ){

if(isOn()){

camera.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback);}

Fuente: Elaboración propia

Al activar la cámara podemos ver directamente que la imagen se visualiza a colores, por decisión de diseño se procesó la imagen capturada para transformarla en una imagen en blanco y negro, ya que eso ayuda a la hora del procesado.

Para conseguir que la imagen se vea en escala de grises, y así aligerar el proceso de ecualización posterior, se ha usado la siguiente línea de código:

TABLA 3.33: Código fuente - imagen escala de grises

Fuente: Elaboración propia

imgpro.cvtColor(output, mBgr, Imgpro.COLOR_GRAY,3)

cc

Repositorio Institucional – UNAMBA - PERÚ

“RECONOCIMIENTO ÓPTICO DE CARACTERES MEDIANTE UNA APLICACIÓN MÓVIL PARA LA REDUCCIÓN DE ERRORES DE LECTURAS EN LOS MEDIDORES ELÉCTRICOS DE ELECTRO SUR ESTE S.A.A. 2014”

CAPÍTULO III: PARTE EXPERIMENTAL

Demo de la iteración 3

En la figura 3.19 se ve el demo de la iteración 3 que es la activación de la cámara para la captura de la imagen del medidor.

Figura 3.19: Demo de la iteración 3 Fuente: Elaboración propia