How to calculate the percentage of a mesh visible by a camera?

I’m trying to calculate the percentage of a mesh visible by a camera (the mesh is always moving). I tried to achieve this using mesh vertices, but it seems that it’s not working.
When the camera is not moving and the mesh is inside the camera, the percentage stays the same. When I move the camera the percentage changes but is not correct.

I’m using Unity 2017.1.0p5.
Here is the code I’ve made:

        float percentage = 0f;
        int totalOfVertices = 0;
        int count = 0;

       totalOfVertices = _meshFilter.mesh.vertices.Length;

       for (int i = 0; i < totalOfVertices; i++)
        {
            Vector3 v = transform.TransformPoint(_meshFilter.mesh.vertices*);*

if (specificCamera.WorldToViewportPoint(v).x > 0f &&
specificCamera.WorldToViewportPoint(v).x < 1f &&
specificCamera.WorldToViewportPoint(v).y > 0f &&
specificCamera.WorldToViewportPoint(v).y < 1f &&
specificCamera.WorldToViewportPoint(v).z > 0f)
{
count += 1;
}
}

percentage = (count * 100f) / totalOfVertices;
Any idea ? Or another way to figure it out ?
Thank you

@lkvn18
My initial idea would be to try to count++ inside of OnBecameVisible() of a script attached to all objects

Maybe add +1 in a singleton count variable to can calculate it.

@Aisenhein Thanks for your reply !
I believe this might not work in my case because I need to know the visible percentage of only one object (made of one mesh).