2016-01-18 2 views
0

Эй, я создал нейронную сеть с использованием python, эта сеть может распознавать рукописные цифры. Я хочу использовать это в своем приложении для Android. Приложение Android отобразит цифру с ручной записью и отправит ее в нейронную сеть, нейронная сеть определит цифру и отправит ее обратно в приложение. Как мне это сделать? Я посмотрел на Google Cloud Platform, но я смущен. Я хочу знать, как я пошлю картинку из приложения в свою нейронную сеть python и отправлю вывод обратно.Android-приложение с бэкэндом python

ответ

0

Ознакомьтесь с концепциями REST (RestEasy, Jersey, ...), создайте сервер REST с конечной точкой, которая может получать строку JSON, содержащую ваше изображение base64. Приложение конвертирует изображение с base64 и отправляет его на сервер REST. Unencode его на сервере REST, передайте его скрипту python, преобразуйте результат обратно в JSON и отправьте его обратно в приложение. Само приложение получает JSON и получает данные от него.

Это, как я хотел бы сделать это с WildFly сервера и Resteasy:

//app side 
PictureInputBo pictureInputBo = new PictureInputBo([your binary]); //encodes it to base64 

//This is working Java code and can be used. 
//It will automatically convert to JSON and sent to the "convert" endpoint of the server 
ResteasyClient client = new ResteasyClientBuilder().build(); 
ResteasyWebTarget target = client.target("http://yourserver:8080/your-webservice/rest/convert/"); 
Response response = target.request().accept(MediaType.APPLICATION_JSON).post(Entity.entity(pictureInputBo, "application/json;charset=UTF-8;version=1")); 


//Server side..."Converter Endpoint", this is also working Java code. 
//it will automatically converted back to the Java object "PictureInputBo" by RestEasy 
@POST 
@Path("/convert") 
@Consumes(MediaType.APPLICATION_JSON) 
public Response convertPicture(@NotNull(message = "Must not be null") @Valid PictureInputBo inputBo) 
{ 
    //Here you pass your business object to the converter service which processes the data 
    //(pass it to python or whatever) 
    PictureOutputBo result = converterService.convert(inputBo); 

    //Resteasy converts it back to JSON and responds it to the app. 
    return Response.ok().entity(result).build(); 
} 


//Back in your app. 
check if response.getStatus() == 200) //HTTP Status OK 
PictureOutputBo pictureOutputBo = response.readEntity(PictureOutputBo.class);