コード例 #1
0
        // Download models and Create ailiaModel
        void CreateAdainNet(AiliaModel ailiaModelVgg, AiliaModel ailiaModelDecoder, bool gpu_mode = true)
        {
            string asset_path       = Application.temporaryCachePath;
            string serverFolderName = "adain";

            if (gpu_mode)
            {
                // call before OpenFile
                ailiaModelVgg.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
                ailiaModelDecoder.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }

            AiliaDownload ailia_download = new AiliaDownload();

            ailia_download.DownloaderProgressPanel = UICanvas.transform.Find("DownloaderProgressPanel").gameObject;
            var urlList = new List <ModelDownloadURL>();

            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = "adain-vgg.onnx.prototxt"
            });
            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = "adain-vgg.onnx"
            });
            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = "adain-decoder.onnx.prototxt"
            });
            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = "adain-decoder.onnx"
            });

            StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
            {
                modelPrepared = ailiaModelVgg.OpenFile(asset_path + "/adain-vgg.onnx.prototxt", asset_path + "/adain-vgg.onnx") &
                                ailiaModelDecoder.OpenFile(asset_path + "/adain-decoder.onnx.prototxt", asset_path + "/adain-decoder.onnx");
            }));
        }
コード例 #2
0
        // Download models and Create ailiaModel
        AiliaModel CreateAiliaNet(ImageSegmentaionModels modelType, bool gpu_mode = true)
        {
            string asset_path       = Application.temporaryCachePath;
            string serverFolderName = "";
            string prototxtName     = "";
            string onnxName         = "";

            switch (modelType)
            {
            case ImageSegmentaionModels.HRNetV2_W18_Small_v2:
                serverFolderName = "hrnet";
                prototxtName     = "HRNetV2-W18-Small-v2.onnx.prototxt";
                onnxName         = "HRNetV2-W18-Small-v2.onnx";
                break;

            case ImageSegmentaionModels.HRNetV2_W18_Small_v1:
                serverFolderName = "hrnet";
                prototxtName     = "HRNetV2-W18-Small-v1.onnx.prototxt";
                onnxName         = "HRNetV2-W18-Small-v1.onnx";
                break;

            case ImageSegmentaionModels.HRNetV2_W48:
                serverFolderName = "hrnet";
                prototxtName     = "HRNetV2-W48.onnx.prototxt";
                onnxName         = "HRNetV2-W48.onnx";
                break;

            case ImageSegmentaionModels.hair_segmentation:
                serverFolderName = "hair_segmentation";
                prototxtName     = "hair_segmentation.opt.onnx.prototxt";
                onnxName         = "hair_segmentation.opt.onnx";
                break;

            case ImageSegmentaionModels.pspnet_hair_segmentation:
                serverFolderName = "pspnet-hair-segmentation";
                prototxtName     = "pspnet-hair-segmentation.onnx.prototxt";
                onnxName         = "pspnet-hair-segmentation.onnx";
                break;

            case ImageSegmentaionModels.deeplabv3:
                serverFolderName = "deeplabv3";
                prototxtName     = "deeplabv3.opt.onnx.prototxt";
                onnxName         = "deeplabv3.opt.onnx";
                break;
            }

            ailiaModel = new AiliaModel();
            if (gpu_mode)
            {
                // call before OpenFile
                ailiaModel.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }

            AiliaDownload ailia_download = new AiliaDownload();

            ailia_download.DownloaderProgressPanel = UICanvas.transform.Find("DownloaderProgressPanel").gameObject;
            var urlList = new List <ModelDownloadURL>();

            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = prototxtName
            });
            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = onnxName
            });

            StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
            {
                modelPrepared = ailiaModel.OpenFile(asset_path + "/" + prototxtName, asset_path + "/" + onnxName);
            }));

            return(ailiaModel);
        }
コード例 #3
0
        private void CreateAiliaDetector(AiliaModelsConst.AiliaModelTypes modelType)
        {
            string asset_path = Application.temporaryCachePath;
            var    urlList    = new List <ModelDownloadURL>();

            if (gpu_mode)
            {
                ailia_detector.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }
            switch (modelType)
            {
            case AiliaModelsConst.AiliaModelTypes.yolov1_tiny:
                mode_text.text  = "ailia yolov1-tiny Detector";
                classifierLabel = AiliaClassifierLabel.VOC_CATEGORY;
                threshold       = 0.2f;
                iou             = 0.45f;
                category_n      = 20;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV1,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov1-tiny", file_name = "yolov1-tiny.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov1-tiny", file_name = "yolov1-tiny.caffemodel"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov1-tiny.prototxt", asset_path + "/yolov1-tiny.caffemodel");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov1_face:
                mode_text.text  = "ailia yolov1-face FaceDetector";
                classifierLabel = new string[] { "face" };
                threshold       = 0.2f;
                iou             = 0.45f;
                category_n      = 1;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV1,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov1-face", file_name = "yolov1-face.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov1-face", file_name = "yolov1-face.caffemodel"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov1-face.prototxt", asset_path + "/yolov1-face.caffemodel");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov2:
                mode_text.text  = "ailia yolov2 Detector";
                classifierLabel = AiliaClassifierLabel.COCO_CATEGORY;
                threshold       = 0.2f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV2,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov2", file_name = "yolov2.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov2", file_name = "yolov2.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov2.onnx.prototxt", asset_path + "/yolov2.onnx");
                    ailia_detector.Anchors(AiliaClassifierLabel.COCO_ANCHORS);
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov3:
                mode_text.text  = "ailia yolov3 Detector";
                classifierLabel = AiliaClassifierLabel.COCO_CATEGORY;
                threshold       = 0.4f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV3,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3", file_name = "yolov3.opt.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3", file_name = "yolov3.opt.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov3.opt.onnx.prototxt", asset_path + "/yolov3.opt.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov3_tiny:
                mode_text.text  = "ailia yolov3-tiny Detector";
                classifierLabel = AiliaClassifierLabel.COCO_CATEGORY;
                threshold       = 0.4f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV3,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-tiny", file_name = "yolov3-tiny.opt.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-tiny", file_name = "yolov3-tiny.opt.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov3-tiny.opt.onnx.prototxt", asset_path + "/yolov3-tiny.opt.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov3_face:
                mode_text.text  = "ailia yolov3-face FaceDetector";
                classifierLabel = new string[] { "face" };
                //Face Detection
                threshold  = 0.2f;
                iou        = 0.45f;
                category_n = 1;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV3,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-face", file_name = "yolov3-face.opt.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-face", file_name = "yolov3-face.opt.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov3-face.opt.onnx.prototxt", asset_path + "/yolov3-face.opt.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov3_hand:
                mode_text.text  = "ailia yolov3-hand Detector";
                classifierLabel = new string[] { "hand" };
                threshold       = 0.4f;
                iou             = 0.45f;
                category_n      = 1;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV3,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-hand", file_name = "yolov3-hand.opt.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov3-hand", file_name = "yolov3-hand.opt.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov3-hand.opt.onnx.prototxt", asset_path + "/yolov3-hand.opt.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov4:
                mode_text.text  = "ailia yolov4 Detector";
                classifierLabel = AiliaClassifierLabel.COCO_CATEGORY;
                threshold       = 0.4f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV4,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov4", file_name = "yolov4.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov4", file_name = "yolov4.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov4.onnx.prototxt", asset_path + "/yolov4.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.yolov4_tiny:
                mode_text.text  = "ailia yolov4-tiny Detector";
                classifierLabel = AiliaClassifierLabel.COCO_CATEGORY;
                threshold       = 0.25f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV4,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov4-tiny", file_name = "yolov4-tiny.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "yolov4-tiny", file_name = "yolov4-tiny.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/yolov4-tiny.onnx.prototxt", asset_path + "/yolov4-tiny.onnx");
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.mobilenet_ssd:
                mode_text.text  = "ailia mobilenet_ssd Detector. Pretraine model : " + pretrainedModel;
                classifierLabel = AiliaClassifierLabel.VOC_CATEGORY;
                threshold       = 0.4f;
                iou             = 0.45f;
                category_n      = 80;

                ailia_detector.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32,
                    AiliaDetector.AILIA_DETECTOR_ALGORITHM_SSD,
                    category_n,
                    AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL
                    );

                var model_path  = pretrainedModel + ".onnx.prototxt";
                var weight_path = pretrainedModel + ".onnx";
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "mobilenet_ssd", file_name = model_path
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "mobilenet_ssd", file_name = weight_path
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_detector.OpenFile(asset_path + "/" + model_path, asset_path + "/" + weight_path);
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.maskrcnn:
                Debug.Log("maskrcnn is working in progress.");

                /*
                 * mode_text.text = "ailia maskrcnn Detector";
                 *
                 * // Download
                 * urlList.Add(new ModelDownloadURL() { folder_path = "mask_rcnn", file_name = "mask_rcnn_R_50_FPN_1x.onnx.prototxt" });
                 * urlList.Add(new ModelDownloadURL() { folder_path = "mask_rcnn", file_name = "mask_rcnn_R_50_FPN_1x.onnx" });
                 *
                 * StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                 * {
                 *      FileOpened = ailia_detector.OpenFile(asset_path + "/mask_rcnn_R_50_FPN_1x.onnx.prototxt", asset_path + "/mask_rcnn_R_50_FPN_1x.onnx");
                 *      Ailia.AILIAShape shape;
                 *      shape = ailia_detector.GetInputShape();
                 * }));
                 */
                break;

            default:
                Debug.Log("Others ailia models are working in progress.");
                break;
            }
        }
コード例 #4
0
        private void CreateAilia()
        {
            string asset_path = Application.temporaryCachePath;
            var    urlList    = new List <ModelDownloadURL>();

            if (gpu_mode)
            {
                ailia_classifier_model.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }

            switch (ailiaModelType)
            {
            case AiliaModelsConst.AiliaModelTypes.vgg16:

                break;

            case AiliaModelsConst.AiliaModelTypes.googlenet:
                ailia_classifier_model.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "googlenet", file_name = "googlenet.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "googlenet", file_name = "googlenet.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_classifier_model.OpenFile(asset_path + "/googlenet.onnx.prototxt", asset_path + "/googlenet.onnx");
                }));
                break;

            case AiliaModelsConst.AiliaModelTypes.resnet50:
                ailia_classifier_model.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_SIGNED_INT8
                    );

                var model_path  = resnet50model + ".onnx.prototxt";
                var weight_path = resnet50model + ".onnx";
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "resnet50", file_name = model_path
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "resnet50", file_name = weight_path
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_classifier_model.OpenFile(asset_path + "/" + model_path, asset_path + "/" + weight_path);
                }));
                break;

            case AiliaModelsConst.AiliaModelTypes.inceptionv3:
                ailia_classifier_model.Settings(
                    AiliaFormat.AILIA_NETWORK_IMAGE_FORMAT_RGB,
                    AiliaFormat.AILIA_NETWORK_IMAGE_CHANNEL_FIRST,
                    AiliaFormat.AILIA_NETWORK_IMAGE_RANGE_UNSIGNED_FP32
                    );

                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "inceptionv3", file_name = "inceptionv3.onnx.prototxt"
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "inceptionv3", file_name = "inceptionv3.onnx"
                });

                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_classifier_model.OpenFile(asset_path + "/inceptionv3.onnx.prototxt", asset_path + "/inceptionv3.onnx");
                }));
                break;
            }
        }
コード例 #5
0
        // Download models and Create ailiaModel
        AiliaModel CreateAiliaNet(ImageManipulationModels modelType, bool gpu_mode = true)
        {
            string asset_path       = Application.temporaryCachePath;
            string serverFolderName = "";
            string prototxtName     = "";
            string onnxName         = "";

            switch (modelType)
            {
            case ImageManipulationModels.SRResNet:
                serverFolderName = "srresnet";
                prototxtName     = "srresnet.opt.onnx.prototxt";
                onnxName         = "srresnet.opt.onnx";
                break;

            case ImageManipulationModels.Noise2Noise:
                serverFolderName = "noise2noise";
                prototxtName     = "noise2noise_gaussian.onnx.prototxt";
                onnxName         = "noise2noise_gaussian.onnx";
                break;

            case ImageManipulationModels.IlluminationCorrection:
                serverFolderName = "illnet";
                prototxtName     = "illnet.onnx.prototxt";
                onnxName         = "illnet.onnx";
                break;

            case ImageManipulationModels.Colorization:
                serverFolderName = "colorization";
                prototxtName     = "colorizer.onnx.prototxt";
                onnxName         = "colorizer.onnx";
                break;
            }

            ailiaModel = new AiliaModel();
            if (gpu_mode)
            {
                // call before OpenFile
                ailiaModel.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }

            AiliaDownload ailia_download = new AiliaDownload();

            ailia_download.DownloaderProgressPanel = UICanvas.transform.Find("DownloaderProgressPanel").gameObject;
            var urlList = new List <ModelDownloadURL>();

            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = prototxtName
            });
            urlList.Add(new ModelDownloadURL()
            {
                folder_path = serverFolderName, file_name = onnxName
            });

            StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
            {
                modelPrepared = ailiaModel.OpenFile(asset_path + "/" + prototxtName, asset_path + "/" + onnxName);
            }));

            return(ailiaModel);
        }
コード例 #6
0
        private void CreateAiliaPoseEstimator()
        {
            string asset_path = Application.temporaryCachePath;
            var    urlList    = new List <ModelDownloadURL>();

            if (gpu_mode)
            {
                ailia_pose.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU);
            }
            switch (ailiaModelType)
            {
            case AiliaModelsConst.AiliaModelTypes.openpose:
                /*
                 * // Download url is uncertain.
                 * ailia_pose.Settings(AiliaPoseEstimator.AILIA_POSE_ESTIMATOR_ALGORITHM_OPEN_POSE);
                 *
                 * urlList.Add(new ModelDownloadURL() { folder_path = "openpose", file_name = "pose_deploy.prototxt" });
                 * urlList.Add(new ModelDownloadURL() { folder_path = "openpose", file_name = "pose_iter_440000.caffemodel" });
                 *
                 * StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                 * {
                 *      FileOpened = ailia_pose.OpenFile(asset_path + "/pose_deploy.prototxt", asset_path + "/pose_iter_440000.caffemodel");
                 * }));
                 */
                break;

            case AiliaModelsConst.AiliaModelTypes.lightweight_human_pose_estimation:
                ailia_pose.Settings(AiliaPoseEstimator.AILIA_POSE_ESTIMATOR_ALGORITHM_LW_HUMAN_POSE);

                var model_path  = "lightweight-human-pose-estimation";
                var weight_path = "lightweight-human-pose-estimation";
                if (optimizedModel)
                {
                    model_path  += ".opt.onnx.prototxt";
                    weight_path += ".opt.onnx";
                }
                else
                {
                    model_path  += ".onnx.prototxt";
                    weight_path += ".onnx";
                }
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "lightweight-human-pose-estimation", file_name = model_path
                });
                urlList.Add(new ModelDownloadURL()
                {
                    folder_path = "lightweight-human-pose-estimation", file_name = weight_path
                });
                StartCoroutine(ailia_download.DownloadWithProgressFromURL(urlList, () =>
                {
                    FileOpened = ailia_pose.OpenFile(asset_path + "/" + model_path, asset_path + "/" + weight_path);
                }));

                break;

            case AiliaModelsConst.AiliaModelTypes.lightweight_human_pose_estimation_3d:

                break;

            default:
                Debug.Log("Others ailia models are working in progress.");
                break;
            }
        }