|
|
@ -56,7 +56,7 @@ JNIEXPORT void JNI_OnUnload(JavaVM *vm, void *reserved) {
|
|
|
|
Yolov5
|
|
|
|
Yolov5
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv5_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_YOLOv5_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (YoloV5::detector != nullptr) {
|
|
|
|
if (YoloV5::detector != nullptr) {
|
|
|
|
delete YoloV5::detector;
|
|
|
|
delete YoloV5::detector;
|
|
|
|
YoloV5::detector = nullptr;
|
|
|
|
YoloV5::detector = nullptr;
|
|
|
@ -68,10 +68,10 @@ Java_com_wzt_yolov5_YOLOv5_init(JNIEnv *env, jclass, jobject assetManager, jbool
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv5_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
Java_wificar_YOLOv5_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
auto result = YoloV5::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
auto result = YoloV5::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/Box");
|
|
|
|
auto box_cls = env->FindClass("wificar/Box");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -86,7 +86,7 @@ Java_com_wzt_yolov5_YOLOv5_detect(JNIEnv *env, jclass, jobject image, jdouble th
|
|
|
|
|
|
|
|
|
|
|
|
// ***************************************[ Yolov5 Custom Layer ]****************************************
|
|
|
|
// ***************************************[ Yolov5 Custom Layer ]****************************************
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv5_initCustomLayer(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_YOLOv5_initCustomLayer(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (YoloV5CustomLayer::detector != nullptr) {
|
|
|
|
if (YoloV5CustomLayer::detector != nullptr) {
|
|
|
|
delete YoloV5CustomLayer::detector;
|
|
|
|
delete YoloV5CustomLayer::detector;
|
|
|
|
YoloV5CustomLayer::detector = nullptr;
|
|
|
|
YoloV5CustomLayer::detector = nullptr;
|
|
|
@ -98,10 +98,10 @@ Java_com_wzt_yolov5_YOLOv5_initCustomLayer(JNIEnv *env, jclass, jobject assetMan
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv5_detectCustomLayer(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
Java_wificar_YOLOv5_detectCustomLayer(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
auto result = YoloV5CustomLayer::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
auto result = YoloV5CustomLayer::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/Box");
|
|
|
|
auto box_cls = env->FindClass("wificar/Box");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -124,7 +124,7 @@ Java_com_wzt_yolov5_YOLOv5_detectCustomLayer(JNIEnv *env, jclass, jobject image,
|
|
|
|
// 20201124 增加 yolo-fastest-xl
|
|
|
|
// 20201124 增加 yolo-fastest-xl
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv4_init(JNIEnv *env, jclass, jobject assetManager, jint yoloType, jboolean useGPU) {
|
|
|
|
Java_wificar_YOLOv4_init(JNIEnv *env, jclass, jobject assetManager, jint yoloType, jboolean useGPU) {
|
|
|
|
if (YoloV4::detector != nullptr) {
|
|
|
|
if (YoloV4::detector != nullptr) {
|
|
|
|
delete YoloV4::detector;
|
|
|
|
delete YoloV4::detector;
|
|
|
|
YoloV4::detector = nullptr;
|
|
|
|
YoloV4::detector = nullptr;
|
|
|
@ -143,10 +143,10 @@ Java_com_wzt_yolov5_YOLOv4_init(JNIEnv *env, jclass, jobject assetManager, jint
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_YOLOv4_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
Java_wificar_YOLOv4_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
auto result = YoloV4::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
auto result = YoloV4::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/Box");
|
|
|
|
auto box_cls = env->FindClass("wificar/Box");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -163,7 +163,7 @@ Java_com_wzt_yolov5_YOLOv4_detect(JNIEnv *env, jclass, jobject image, jdouble th
|
|
|
|
NanoDet
|
|
|
|
NanoDet
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_NanoDet_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_NanoDet_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (NanoDet::detector != nullptr) {
|
|
|
|
if (NanoDet::detector != nullptr) {
|
|
|
|
delete NanoDet::detector;
|
|
|
|
delete NanoDet::detector;
|
|
|
|
NanoDet::detector = nullptr;
|
|
|
|
NanoDet::detector = nullptr;
|
|
|
@ -175,10 +175,10 @@ Java_com_wzt_yolov5_NanoDet_init(JNIEnv *env, jclass, jobject assetManager, jboo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_NanoDet_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
Java_wificar_NanoDet_detect(JNIEnv *env, jclass, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
auto result = NanoDet::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
auto result = NanoDet::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/Box");
|
|
|
|
auto box_cls = env->FindClass("wificar/Box");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FFFFIF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -197,7 +197,7 @@ Java_com_wzt_yolov5_NanoDet_detect(JNIEnv *env, jclass, jobject image, jdouble t
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_SimplePose_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_SimplePose_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (SimplePose::detector != nullptr) {
|
|
|
|
if (SimplePose::detector != nullptr) {
|
|
|
|
delete SimplePose::detector;
|
|
|
|
delete SimplePose::detector;
|
|
|
|
SimplePose::detector = nullptr;
|
|
|
|
SimplePose::detector = nullptr;
|
|
|
@ -209,10 +209,10 @@ Java_com_wzt_yolov5_SimplePose_init(JNIEnv *env, jclass clazz, jobject assetMana
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_SimplePose_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
Java_wificar_SimplePose_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
auto result = SimplePose::detector->detect(env, image);
|
|
|
|
auto result = SimplePose::detector->detect(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/KeyPoint");
|
|
|
|
auto box_cls = env->FindClass("wificar/KeyPoint");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FFFFFF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FFFFFF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -272,7 +272,7 @@ jcharArray matToBitmapCharArray(JNIEnv *env, const cv::Mat &image) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_Yolact_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_Yolact_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (Yolact::detector != nullptr) {
|
|
|
|
if (Yolact::detector != nullptr) {
|
|
|
|
delete Yolact::detector;
|
|
|
|
delete Yolact::detector;
|
|
|
|
Yolact::detector = nullptr;
|
|
|
|
Yolact::detector = nullptr;
|
|
|
@ -284,10 +284,10 @@ Java_com_wzt_yolov5_Yolact_init(JNIEnv *env, jclass clazz, jobject assetManager,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_Yolact_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
Java_wificar_Yolact_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
auto result = Yolact::detector->detect_yolact(env, image);
|
|
|
|
auto result = Yolact::detector->detect_yolact(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
auto yolact_mask = env->FindClass("com/wzt/yolov5/YolactMask");
|
|
|
|
auto yolact_mask = env->FindClass("wificar/YolactMask");
|
|
|
|
// auto cid = env->GetMethodID(yolact_mask, "<init>", "(FFFFIF[F[I)V");
|
|
|
|
// auto cid = env->GetMethodID(yolact_mask, "<init>", "(FFFFIF[F[I)V");
|
|
|
|
auto cid = env->GetMethodID(yolact_mask, "<init>", "(FFFFIF[F[C)V");
|
|
|
|
auto cid = env->GetMethodID(yolact_mask, "<init>", "(FFFFIF[F[C)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), yolact_mask, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), yolact_mask, nullptr);
|
|
|
@ -357,7 +357,7 @@ std::string jstring2str(JNIEnv *env, jstring jstr) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_ocr_ChineseOCRLite_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_ocr_ChineseOCRLite_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (OCR::detector != nullptr) {
|
|
|
|
if (OCR::detector != nullptr) {
|
|
|
|
delete OCR::detector;
|
|
|
|
delete OCR::detector;
|
|
|
|
OCR::detector = nullptr;
|
|
|
|
OCR::detector = nullptr;
|
|
|
@ -369,13 +369,13 @@ Java_com_wzt_yolov5_ocr_ChineseOCRLite_init(JNIEnv *env, jclass clazz, jobject a
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_ocr_ChineseOCRLite_detect(JNIEnv *env, jclass clazz, jobject bitmap, jint short_size) {
|
|
|
|
Java_wificar_ocr_ChineseOCRLite_detect(JNIEnv *env, jclass clazz, jobject bitmap, jint short_size) {
|
|
|
|
auto ocrResult = OCR::detector->detect(env, bitmap, short_size);
|
|
|
|
auto ocrResult = OCR::detector->detect(env, bitmap, short_size);
|
|
|
|
// LOGD("jni ocr result size:%ld", ocrResult.size());
|
|
|
|
// LOGD("jni ocr result size:%ld", ocrResult.size());
|
|
|
|
// LOGD("jni ocr ocrresult[0].pre_res size:%ld", ocrResult[0].pre_res.size());
|
|
|
|
// LOGD("jni ocr ocrresult[0].pre_res size:%ld", ocrResult[0].pre_res.size());
|
|
|
|
// LOGD("jni ocr ocrresult[0][0]:%s", ocrResult[0].pre_res[0].c_str());
|
|
|
|
// LOGD("jni ocr ocrresult[0][0]:%s", ocrResult[0].pre_res[0].c_str());
|
|
|
|
|
|
|
|
|
|
|
|
auto ocr_result = env->FindClass("com/wzt/yolov5/ocr/OCRResult");
|
|
|
|
auto ocr_result = env->FindClass("wificar/ocr/OCRResult");
|
|
|
|
auto cid = env->GetMethodID(ocr_result, "<init>", "([D[DLjava/lang/String;)V");
|
|
|
|
auto cid = env->GetMethodID(ocr_result, "<init>", "([D[DLjava/lang/String;)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(ocrResult.size(), ocr_result, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(ocrResult.size(), ocr_result, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -422,7 +422,7 @@ Java_com_wzt_yolov5_ocr_ChineseOCRLite_detect(JNIEnv *env, jclass clazz, jobject
|
|
|
|
ENet
|
|
|
|
ENet
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_ENet_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_ENet_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (ENet::detector != nullptr) {
|
|
|
|
if (ENet::detector != nullptr) {
|
|
|
|
delete ENet::detector;
|
|
|
|
delete ENet::detector;
|
|
|
|
ENet::detector = nullptr;
|
|
|
|
ENet::detector = nullptr;
|
|
|
@ -434,7 +434,7 @@ Java_com_wzt_yolov5_ENet_init(JNIEnv *env, jclass, jobject assetManager, jboolea
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_ENet_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
Java_wificar_ENet_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
auto result = ENet::detector->detect_enet(env, image);
|
|
|
|
auto result = ENet::detector->detect_enet(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
int output_w = result.w;
|
|
|
|
int output_w = result.w;
|
|
|
@ -459,7 +459,7 @@ Java_com_wzt_yolov5_ENet_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
MobileNetv3_Seg
|
|
|
|
MobileNetv3_Seg
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_MbnSeg_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_MbnSeg_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (MBNV3Seg::detector != nullptr) {
|
|
|
|
if (MBNV3Seg::detector != nullptr) {
|
|
|
|
delete MBNV3Seg::detector;
|
|
|
|
delete MBNV3Seg::detector;
|
|
|
|
MBNV3Seg::detector = nullptr;
|
|
|
|
MBNV3Seg::detector = nullptr;
|
|
|
@ -471,7 +471,7 @@ Java_com_wzt_yolov5_MbnSeg_init(JNIEnv *env, jclass, jobject assetManager, jbool
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_MbnSeg_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
Java_wificar_MbnSeg_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
auto result = MBNV3Seg::detector->detect_mbnseg(env, image);
|
|
|
|
auto result = MBNV3Seg::detector->detect_mbnseg(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
int output_w = result.w;
|
|
|
|
int output_w = result.w;
|
|
|
@ -496,7 +496,7 @@ Java_com_wzt_yolov5_MbnSeg_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
MobileNetv2_FCN
|
|
|
|
MobileNetv2_FCN
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_MbnFCN_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_MbnFCN_init(JNIEnv *env, jclass, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (MbnFCN::detector != nullptr) {
|
|
|
|
if (MbnFCN::detector != nullptr) {
|
|
|
|
delete MbnFCN::detector;
|
|
|
|
delete MbnFCN::detector;
|
|
|
|
MbnFCN::detector = nullptr;
|
|
|
|
MbnFCN::detector = nullptr;
|
|
|
@ -508,7 +508,7 @@ Java_com_wzt_yolov5_MbnFCN_init(JNIEnv *env, jclass, jobject assetManager, jbool
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jfloatArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_MbnFCN_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
Java_wificar_MbnFCN_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
auto result = MbnFCN::detector->detect_mbnfcn(env, image);
|
|
|
|
auto result = MbnFCN::detector->detect_mbnfcn(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
int output_w = result.w;
|
|
|
|
int output_w = result.w;
|
|
|
@ -534,7 +534,7 @@ Java_com_wzt_yolov5_MbnFCN_detect(JNIEnv *env, jclass, jobject image) {
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_FaceLandmark_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_FaceLandmark_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (FaceLandmark::detector != nullptr) {
|
|
|
|
if (FaceLandmark::detector != nullptr) {
|
|
|
|
delete FaceLandmark::detector;
|
|
|
|
delete FaceLandmark::detector;
|
|
|
|
FaceLandmark::detector = nullptr;
|
|
|
|
FaceLandmark::detector = nullptr;
|
|
|
@ -546,10 +546,10 @@ Java_com_wzt_yolov5_FaceLandmark_init(JNIEnv *env, jclass clazz, jobject assetMa
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_FaceLandmark_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
Java_wificar_FaceLandmark_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
auto result = FaceLandmark::detector->detect(env, image);
|
|
|
|
auto result = FaceLandmark::detector->detect(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/FaceKeyPoint");
|
|
|
|
auto box_cls = env->FindClass("wificar/FaceKeyPoint");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "(FF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -567,7 +567,7 @@ Java_com_wzt_yolov5_FaceLandmark_detect(JNIEnv *env, jclass clazz, jobject image
|
|
|
|
DBFace
|
|
|
|
DBFace
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_DBFace_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_DBFace_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (DBFace::detector != nullptr) {
|
|
|
|
if (DBFace::detector != nullptr) {
|
|
|
|
delete DBFace::detector;
|
|
|
|
delete DBFace::detector;
|
|
|
|
DBFace::detector = nullptr;
|
|
|
|
DBFace::detector = nullptr;
|
|
|
@ -579,11 +579,11 @@ Java_com_wzt_yolov5_DBFace_init(JNIEnv *env, jclass clazz, jobject assetManager,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_DBFace_detect(JNIEnv *env, jclass clazz, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
Java_wificar_DBFace_detect(JNIEnv *env, jclass clazz, jobject image, jdouble threshold, jdouble nms_threshold) {
|
|
|
|
auto result = DBFace::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
auto result = DBFace::detector->detect(env, image, threshold, nms_threshold);
|
|
|
|
// LOGD("jni dbface size:%d %f %f", result.size(), threshold, nms_threshold);
|
|
|
|
// LOGD("jni dbface size:%d %f %f", result.size(), threshold, nms_threshold);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/KeyPoint");
|
|
|
|
auto box_cls = env->FindClass("wificar/KeyPoint");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FFFFFF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FFFFFF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(result.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
@ -616,7 +616,7 @@ Java_com_wzt_yolov5_DBFace_detect(JNIEnv *env, jclass clazz, jobject image, jdou
|
|
|
|
********************************************************************************************/
|
|
|
|
********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
extern "C" JNIEXPORT void JNICALL
|
|
|
|
Java_com_wzt_yolov5_LightOpenPose_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
Java_wificar_LightOpenPose_init(JNIEnv *env, jclass clazz, jobject assetManager, jboolean useGPU) {
|
|
|
|
if (LightOpenPose::detector != nullptr) {
|
|
|
|
if (LightOpenPose::detector != nullptr) {
|
|
|
|
delete LightOpenPose::detector;
|
|
|
|
delete LightOpenPose::detector;
|
|
|
|
LightOpenPose::detector = nullptr;
|
|
|
|
LightOpenPose::detector = nullptr;
|
|
|
@ -628,10 +628,10 @@ Java_com_wzt_yolov5_LightOpenPose_init(JNIEnv *env, jclass clazz, jobject assetM
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
extern "C" JNIEXPORT jobjectArray JNICALL
|
|
|
|
Java_com_wzt_yolov5_LightOpenPose_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
Java_wificar_LightOpenPose_detect(JNIEnv *env, jclass clazz, jobject image) {
|
|
|
|
auto poses = LightOpenPose::detector->detect(env, image);
|
|
|
|
auto poses = LightOpenPose::detector->detect(env, image);
|
|
|
|
|
|
|
|
|
|
|
|
auto box_cls = env->FindClass("com/wzt/yolov5/OpenPoseKeyPoint");
|
|
|
|
auto box_cls = env->FindClass("wificar/OpenPoseKeyPoint");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FF)V");
|
|
|
|
auto cid = env->GetMethodID(box_cls, "<init>", "([F[FF)V");
|
|
|
|
jobjectArray ret = env->NewObjectArray(poses.size(), box_cls, nullptr);
|
|
|
|
jobjectArray ret = env->NewObjectArray(poses.size(), box_cls, nullptr);
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
|