| page.title=Rotation Vector CV Crosscheck |
| @jd:body |
| |
| <!-- |
| Copyright 2015 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <div class="figure" style="width:214px"> |
| <img src="images/acircles_pattern_reduced.png" alt="Test pattern thumbnail" height="166" /> |
| <p class="img-caption"> |
| <strong>Figure 1.</strong> Thumbnail of test pattern. Download the |
| full-resolution image linked above. |
| </p> |
| </div> |
| <p>This page provides the steps to properly test the compatibility of your <a |
| href="https://source.android.com/devices/sensors/sensor-types.html#rotation_vector">rotation |
| vector sensor</a> implementation. This test should be run when the device declares |
| the TYPE_ROTATION_VECTOR composite sensor feature. See this <a |
| href="https://www.youtube.com/watch?v=MsDVmsH1PaI">video tutorial</a> for |
| additional details.</p> |
| |
| <h2 id=testing>Testing</h2> |
| |
| <ol> |
| <li>Install OpenCV Manager on the Android device being tested. |
| <li>Download the OpenCV SDK from <a |
| href="http://opencv.org/downloads.html">OpenCV.org</a>. Select |
| <strong>OpenCV for Android</strong> with version 3.0.0. |
| <li>Find the APK |
| from the <code>apk</code> folder inside the downloaded archive. Consult <a |
| href="http://developer.android.com/tools/help/adb.html#move">installing an |
| application</a> for the command to load APKs onto the Android device from |
| computer. |
| <li>If there is active account logged into Google Play, also locate |
| OpenCV Manager in Google Play and disable <em>Auto-update</em> in the context menu |
| (the popup menu from the "..." button). |
| <img src="images/openvc-play.png" alt="Disable OpenCV Manager Auto-updates" height="533" id="disable-opencv" /> |
| <p class="img-caption"> |
| <strong>Figure 2.</strong> Disabling Auto-update in Google Play. |
| </p> |
| <li>Print out the linked <a href="images/acircles_pattern.pdf">test pattern</a>, |
| disabling any scaling options when printing. The pattern should fit US |
| Letter paper in landscape or anything bigger. |
| <p class="note"><strong>Note:</strong> The inline picture above is low |
| resolution and just for illustration. Please do not directly print it as your |
| pattern.</p> |
| <li>Place the pattern on a horizontal surface. |
| <li>Start the <strong>Rotation Vector CV Crosscheck</strong> in the CTS Verifier |
| app. Follow the guide to turn on airplane mode, turn off auto rotate, and |
| adjust adaptive brightness and location if these changes have |
| not been made.<br /> |
| <img src="images/RVCVXCheck_start.png" alt="Test initiation" height="533" id="test-start" /> |
| <p class="img-caption"> |
| <strong>Figure 3.</strong> Initiating the test. |
| </p> |
| <li>When the video preview appears, place the phone three feet (or one meter) over |
| the pattern so the main camera is facing the pattern with yellow marker on the |
| screen and yellow marker on the pattern aligned at the same corner.<br /> |
| <img src="images/RVCVXCheck_down.png" alt="Test pattern placement" height="207" id="test-pattern-placement" /> |
| <p class="img-caption"> |
| <strong>Figure 4.</strong> Placing the test pattern. |
| </p> |
| <li>While keeping the pattern entirely in the camera view, rotate the Android |
| device under test (DUT) around the pattern in three different directions, one |
| by one (1, 2 and then 3 illustrated in picture below) as prompted by the |
| rotation range indicator. Keep movement smooth and steady for the best result.<br /> |
| <img src="images/RVCVXCheck_flow.png" alt="Device movement" height="426" id="device-movement" /> |
| <p class="img-caption"> |
| <strong>Figure 5.</strong> Manipulating the device under test. |
| </p> |
| <li>After the capture, the camera preview will disappear and the analysis process |
| will start. Wait patiently for analysis to finish; it usually takes one to five |
| minutes depending on the phone performance. The phone will sound and vibrate at |
| analysis completion. A numerical result will be presented on screen if the |
| analysis is successful.<br /> |
| <img src="images/RVCVXCheck_next.png" alt="Test completion" height="533" id="test-complete"/> |
| <p class="img-caption"> |
| <strong>Figure 6.</strong> Finishing the test. |
| </p> |
| <li>Click <strong>next</strong> to proceed to the pass/fail screen and review the result.<br /> |
| <img src="images/RVCVXCheck_pass.png" alt="Test success" height="533" id="test-success" /> |
| <p class="img-caption"> |
| <strong>Figure 7.</strong> Passing the test. |
| </p> |
| <li>Follow these tips for best results: |
| <ol> |
| <li>Since this is a manual test with complexity, you may want to try it a few times |
| for the best results. |
| <li>Accelerometer, gyroscope, and magnetometer should be calibrated before testing |
| for good results. |
| <li>See this <a href="https://www.youtube.com/watch?v=MsDVmsH1PaI">video |
| tutorial</a> for additional details. |
| </ol> |
| </ol> |
| |
| <h2 id=troubleshooting>Troubleshooting</h2> |
| <ol> |
| <li>Symptom: Test crashed when starting test case or immediately after finishing video recording.<br> |
| Cause: Likely an OpenCV Manager compatibility issue. Check |
| <code>logcat</code> to confirm. If confirmed, check version and arch of the |
| installed OpenCV Manager. |
| <li>Symptom: Test fails frequently due to "Too many invalid frame" errors.<br> |
| Cause: Likely due to video quality. Confirm the following conditions: |
| <ol> |
| <li>There is enough ambient lighting for the test. Natural light |
| usually gives the best result. However, when it is not available, abundant |
| light from multiple angles that does not form obvious shadows works, as well. |
| Avoid low angle lighting to reduce glare. |
| <li>The motion during video taking is smooth. Jerky movement causes |
| blur and confuses the computer vision software. |
| <li>The pattern should always be entirely in video preview frame and |
| located around the center. The pattern should be 1/4 ~ 1/2 the size of the |
| video preview window. If the pattern is too small, the accuracy is reduced. |
| If the pattern is too big, lens distortion is more obvious, and it is more |
| difficult to keep the pattern always inside video recording frame. |
| <li>The camera is able to focus well. Some devices have trouble in |
| focusing during video recording. This is usually due to there is too few |
| variations in the scene, e.g. solid color smooth floor surface. Moving test |
| pattern to a place with textured surface or introducing objects around the test |
| pattern usually helps. |
| <li>Image stabilization is turned off. |
| </ol> |
| <li>Symptom: The pitch and roll test works fine, but the yaw test regularly fails.<br> |
| Cause: First, make sure the magnetic field sensor is well calibrated. |
| Rotation vector does not function well if magnetic field sensor is not |
| calibrated.<br> |
| It is also possible that yaw axis fails due to video taking. Hold the |
| device steady and walk/move around the test pattern for the yaw section of |
| test. It is hard to maintain the quality of video while rotating device in |
| hand. |
| </ol> |
| |
| <h2 id=reporting>Reporting feedback</h2> |
| |
| <p>If the steps above do not help, please make sure to follow the feedback steps below to report your issue.</p> |
| |
| <p>Please gather the following information when reporting a bug:</p> |
| <ol> |
| <li>Android bugreport |
| <li>Screenshot if there is any error message on screen. |
| <li>Contents of <code>/sdcard/RVCVRecData/</code>. This folder contains |
| video files and thus can be quite large if the test has already been taken |
| multiple times. Clearing the folder and performing the test again will |
| help reduce size. Inspect video files inside to find obvious issues in |
| recording. |
| <li>Screenshot of the OpenCV Manager app. |
| </ol> |