• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by corumlee · Jan 30, 2018 at 12:57 PM · trackingmemory managementmemory-leakmemory usageemgucv

Memory leak for using Emgucv facedetection function.

$$anonymous$$ guys,

i am doing now face detection in unity3d and for that i followed Kenny Allau's tutorial to have face detect function in my laptop.

http://www.kennyallau.com/single-post/2017/06/05/Example-face-tracker-and-pedestrian-detector-using-Emgu-CV-with-Unity-3D-Part-I

And at the first time it seems to work quite good. But after about 3 min my laptop became quite slow and it didn't work anymore. The reason was memory leak.

T$$anonymous$$s is actually my guess : var faces = _cascadeClassifier.DetectMultiScale(grayFrame, 1.1, 4, new System.Drawing.Size(frameWidth/8, frameHeight/8));

t$$anonymous$$s part of code takes memory progressively but doesn't give it back.

Maybe is there anyone who can solve t$$anonymous$$s problem or knows somet$$anonymous$$ng?

here is whole code that i used,

//Face detection using HAAR Cascade

using UnityEngine; using System.IO; using Emgu.CV; using Emgu.CV.Structure;

public class faceDetect : MonoBehaviour {

 private int frameWidth;
 private int frameHeight;
 private VideoCapture cvCapture;
 private CascadeClassifier _cascadeClassifier;
 private Image<Bgr, byte> currentFrameBgr;

 public Material mt;

 void Start () {

     cvCapture = new VideoCapture(0);

    _cascadeClassifier = new CascadeClassifier(Application.dataPath + "/haarcascade_frontalface_alt.xml");

    frameWidth = (int)cvCapture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameWidth);
    frameHeight = (int)cvCapture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameHeight);

    cvCapture.Start();

 }
 
 void Update () {

     faceDetector();
 }


 private void faceDetector()
 {
     currentFrameBgr = cvCapture.QueryFrame().ToImage<Bgr, byte>();
     
     Texture2D tex = new Texture2D(640, 480);

     if (currentFrameBgr != null)
     {
         Image<Gray, byte> grayFrame = currentFrameBgr.Convert<Gray, byte>();

         var faces = _cascadeClassifier.DetectMultiScale(grayFrame, 1.1, 4, new System.Drawing.Size(frameWidth/8, frameHeight/8));

         foreach (var face in faces)
         {
             currentFrameBgr.Draw(face, new Bgr(0, 255, 0), 3);
         }

         //Convert t$$anonymous$$s image into Bitmap, the pixel values are copied over to the Bitmap
         currentFrameBgr.ToBitmap();

         MemoryStream memstream = new MemoryStream();
         currentFrameBgr.Bitmap.Save(memstream, currentFrameBgr.Bitmap.RawFormat);

         tex.LoadImage(memstream.ToArray());
         mt.mainTexture = tex;
     }
 }

 private void OnDestroy()
 {
     //release from memory
     cvCapture.Dispose();
     cvCapture.Stop();
     
 }

}

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

74 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Question About Camera's, Canvases and Memory 0 Answers

Unity using too much memory on mac 0 Answers

Is this memory usage too much for a mobile game? 1 Answer

ManagedStaticReferences when unload unused resources 0 Answers

iOS crash problem: Received memory warning . How to solve that? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges