示例#1
0
def test_custom_recognition_full_model_resnet_multi():
    try:
        keras.backend.clear_session()
    except:
        None
    predictor = CustomImagePrediction()
    predictor.setModelPath(os.path.join(main_folder, "data-models", "idenprof_full_resnet_ex-001_acc-0.119792.h5"))
    predictor.setJsonPath(model_json=os.path.join(main_folder, "data-json", "idenprof.json"))
    predictor.loadFullModel(num_objects=10)
    images_to_image_array()
    result_array = predictor.predictMultipleImages(sent_images_array=all_images_array)

    assert isinstance(result_array, list)
    for result in result_array:
        assert "predictions" in result
        assert "percentage_probabilities" in result
        assert isinstance(result["predictions"], list)
        assert isinstance(result["percentage_probabilities"], list)
        assert isinstance(result["predictions"][0], str)
        assert isinstance(result["percentage_probabilities"][0], str)
示例#2
0
def test_custom_recognition_model_resnet_multi():
    predictor = CustomImagePrediction()
    predictor.setModelTypeAsResNet()
    predictor.setModelPath(
        os.path.join(main_folder, "data-models", "idenprof_resnet.h5"))
    predictor.setJsonPath(
        model_json=os.path.join(main_folder, "data-json", "idenprof.json"))
    predictor.loadModel(num_objects=10)
    images_to_image_array()
    result_array = predictor.predictMultipleImages(
        sent_images_array=all_images_array)

    assert isinstance(result_array, list)
    for result in result_array:
        assert "predictions" in result
        assert "percentage_probabilities" in result
        assert isinstance(result["predictions"], list)
        assert isinstance(result["percentage_probabilities"], list)
        assert isinstance(result["predictions"][0], str)
        assert isinstance(result["percentage_probabilities"][0], str)
示例#3
0
        text = pytesseract.image_to_string(value, config='')
        st.write("The text detected is")
        st.write(text)

    st.markdown("-----------------------------------")
    st.title("Results")
    if runResults == True:
        if predicitions is not 0:
            prob = round(float(probabilities[0]))
            if prob > threshold:
                st.write("The image ", singlePicTest, " has a head unit",
                         "with a ", prob, "probability.")

os.chdir(videopath)
if run == "Run Entire Video":
    results_array = prediction.predictMultipleImages(finalpicnames,
                                                     result_count_per_image=2)
    dfyy = pd.DataFrame(results_array,
                        columns=['HeadUnit', 'Probability', 'Frame'])
    save_results = []
    count = -1
    for i in results_array:
        headunit, prob = i["predictions"], i["percentage_probabilities"]

        for idx in range(len(headunit)):
            # print(pred[idx] , " : " , prob[idx])
            if (headunit[idx] == "HeadUnit"):
                count += 1
            save_results.append((headunit[idx], prob[idx], count))

    df = pd.DataFrame(save_results,
                      columns=['HeadUnit', 'Probability', 'Frame'])
示例#4
0
from imageai.Prediction.Custom import CustomImagePrediction
from os import listdir, getcwd

#Searches for trained models
models = listdir("data/models")

#If no model exists, raise an error 
if len(models) < 2: #(2 because .gitignore always exists at the folder)
    raise Exception("No trained model found")

models.sort(reverse=True)
bestModel = models[0]

prediction = CustomImagePrediction()
prediction.setModelTypeAsResNet()
prediction.setModelPath(f"data/models/{bestModel}")
prediction.setJsonPath("data/json/model_class.json")
prediction.loadModel(num_objects=2)

#Searches for files to predict
filenames = listdir("predictFiles")
filenames.remove(".gitignore")
filepaths = ["predictFiles/" + filename for filename in filenames]

results = prediction.predictMultipleImages(filepaths)
for filename, result in zip(filenames, results):
    print(f"{filename}: {result['predictions'][0]} ({result['percentage_probabilities'][0]}% certainty)")
def detection(num):
    bound = []
    index = []
    main_index = []
    ls = []
    img = []
    res = []
    item = ''
    classes = []
    count = 0
    counter = []
    execution_path = os.getcwd()
    model_name = os.listdir('Dataset/models/')
    model_name.sort()
    a = model_name[len(model_name) - 1]

    prediction = CustomImagePrediction()
    prediction.setModelTypeAsResNet()

    prediction.setModelPath(
        os.path.join(execution_path, 'Dataset/models/' + str(a)))
    prediction.setJsonPath(
        os.path.join(execution_path, 'Dataset/json/model_class.json'))
    prediction.loadModel(num_objects=num)

    for i in os.listdir(execution_path + '/Dataset/train'):
        classes.append(i)
        count = count + 1

    os.chdir(os.getcwd() + '/images/crop')
    exec_path = os.getcwd()

    counter = [0] * count
    try:
        duck = os.listdir('.')
        duck.sort()
        res = prediction.predictMultipleImages(duck, result_count_per_image=1)
        for each_result in res:
            predictions, percentage_probabilities = each_result[
                "predictions"], each_result["percentage_probabilities"]
            img.append(predictions)

        for j in range(0, len(img)):
            for k in range(0, count):
                if "['" + str(classes[k]) + "']" == str(
                        img[j]) or '["' + str(classes[k]) + '"]' == str(
                            img[j]):
                    counter[k] = counter[k] + 1

        for j in range(0, count):
            for k in range(0, len(img)):
                if "['" + str(classes[j]) + "']" == str(img[k]):
                    index.append(k)

            main_index.append(index)
            index = []
        for i in range(0, count):
            for j in range(0, counter[i] - 1):
                if main_index[i][j] + 1 != main_index[i][j + 1]:
                    bound.append(str(classes[i]))

        os.chdir(execution_path)
        counter.insert(0, str(datetime.datetime.now())[:-10])

        try:

            if bound != []:
                with open('Bound_Error.csv', 'w') as csv_file:
                    writer = csv.writer(csv_file, delimiter=',')
                    writer.writerow(bound)
            else:
                os.remove('Bound_Error.csv')

        except:
            print('No error in placement ')

        with open("Results.csv", "a") as csv_file:
            writer = csv.writer(csv_file, delimiter=',')
            writer.writerow(counter)

    except Exception as e:
        print(e)
        print('Unknown object detected')
示例#6
0
    os.path.join(execution_path, "model_ex-091_acc-0.925676.h5"))
prediction.setJsonPath(os.path.join(execution_path, "model_class.json"))
prediction.loadModel(num_objects=13)

# for single image
# predictions, probabilities = prediction.predictImage(os.path.join(execution_path, "test_image/22.jpg"), result_count=5)
#
# for eachPrediction, eachProbability in zip(predictions, probabilities):
#     print(eachPrediction , " : " , eachProbability)
# end

# for multiple image
all_images_array = []
for filename in glob.glob('E:/Python Code/CarLogo/venv/test_image/*.jpg'):
    im = Image.open(filename)
    all_images_array.append(im)
i = 0
results_array = prediction.predictMultipleImages(all_images_array,
                                                 result_count_per_image=1,
                                                 input_type='array')

for each_result in results_array:
    predictions, percentage_probabilities = each_result[
        "predictions"], each_result["percentage_probabilities"]
    for index in range(len(predictions)):
        print(predictions[index], " : ", percentage_probabilities[index])
    print("-----------------------")
    plt.imshow(np.asarray(all_images_array[i]))
    plt.show()
    i = i + 1