Пример #1
0
function classifyMany($classify_many_id, $image_list)
{
    ini_set('memory_limit', '512M');
    $client = new GuzzleHttp\Client();
    $digits_response = $client->post('http://arcos.io:5000/models/images/classification/classify_many.json', ['multipart' => [['name' => 'job_id', 'contents' => '20161024-081150-5437'], ['name' => 'image_list', 'contents' => fopen($image_list, 'r')]]]);
    if ($digits_response->getStatusCode() == 200) {
        $digits_classifications = json_decode($digits_response->getBody())->classifications;
        $traffic_signs = array();
        foreach ($digits_classifications as $image => $classifications) {
            $classification = $classifications[0];
            $spain_id = $classification[0];
            $confidence = $classification[1];
            if (array_key_exists($spain_id, $traffic_signs)) {
                $traffic_sign = $traffic_signs[$spain_id];
            } else {
                $traffic_sign = TrafficSignClass::where('spain_id', '=', $spain_id)->first();
                $traffic_signs[$spain_id] = $traffic_sign;
            }
            $classify_many_sample = new ClassifyManySample();
            $classify_many_sample->sample_image = basename($image);
            $classify_many_sample->class_id = $traffic_sign['id'];
            $classify_many_sample->confidence = $confidence;
            $classify_many_sample->classify_many_id = $classify_many_id;
            $classify_many_sample->save();
        }
        return $digits_classifications;
    } else {
        return null;
    }
}