001/*
002 * ===========================================================================================
003 * = COPYRIGHT
004 *          PAX Computer Technology (Shenzhen) Co., Ltd. PROPRIETARY INFORMATION
005 *   This software is supplied under the terms of a license agreement or nondisclosure
006 *   agreement with PAX Computer Technology (Shenzhen) Co., Ltd. and may not be copied or
007 *   disclosed except in accordance with the terms in that agreement.
008 *     Copyright (C) 2017-2023 PAX Computer Technology (Shenzhen) Co., Ltd. All rights reserved.
009 * Description: // Detail description about the function of this module,
010 *             // interfaces with the other modules, and dependencies.
011 * Revision History:
012 * Date                         Author                        Action
013 * 2017/04/01                   PAX                     Create/Add/Modify/Delete
014 * ===========================================================================================
015 */
016package com.pax.dal.entity;
017
018import java.util.Arrays;
019
020public class FaceInfo {
021    private float brightness;
022    private float clarity;
023    private int eyeStatus;
024    private FaceAngle faceAngle;
025    private int faceCover;
026    private FaceRectangle faceRectangle;
027    private float[] feature;
028    private int mouthStatus;
029    private int overexposure;
030    private float[] points;
031    private float[] pointsVis;
032    private int pupilDistance;
033    private float quality;
034    
035    public FaceInfo() {
036        super();
037    }
038
039    public FaceInfo(float brightness, float clarity, int eyeStatus, FaceAngle faceAngle, int faceCover,
040            FaceRectangle faceRectangle, float[] feature, int mouthStatus, int overexposure, float[] points,
041            float[] pointsVis, int pupilDistance, float quality) {
042        super();
043        this.brightness = brightness;
044        this.clarity = clarity;
045        this.eyeStatus = eyeStatus;
046        this.faceAngle = faceAngle;
047        this.faceCover = faceCover;
048        this.faceRectangle = faceRectangle;
049        this.feature = feature;
050        this.mouthStatus = mouthStatus;
051        this.overexposure = overexposure;
052        this.points = points;
053        this.pointsVis = pointsVis;
054        this.pupilDistance = pupilDistance;
055        this.quality = quality;
056    }
057
058    /**
059     * <div class="zh">亮度。</div> <div class="en">Brightness.</div>
060     * 
061     * @return <div class="zh">亮度。小于0表示无法获取。</div> <div class="en">Brightness. Less than 0 means it cannot be retrieved.</div>
062     */
063    public float getBrightness() {
064        return brightness;
065    }
066
067    /**
068     * <div class="zh">亮度。</div> <div class="en">Brightness.</div>
069     * 
070     * @param brightness<div class="zh">亮度。小于0表示无法获取。</div> <div class="en">Brightness. Less than 0 means it cannot be retrieved.</div>
071     */
072    public void setBrightness(float brightness) {
073        this.brightness = brightness;
074    }
075
076    /**
077     * <div class="zh">清晰度。</div> <div class="en">Clarity.</div>
078     * 
079     * @return <div class="zh">清晰度。小于0表示无法获取。</div> <div class="en">Clarity. Less than 0 means it cannot be retrieved.</div>
080     */
081    public float getClarity() {
082        return clarity;
083    }
084
085    /**
086     * <div class="zh">清晰度。</div> <div class="en">Clarity.</div>
087     * 
088     * @param clarity <div class="zh">清晰度。小于0表示无法获取。</div> <div class="en">Clarity. Less than 0 means it cannot be retrieved.</div>
089     */
090    public void setClarity(float clarity) {
091        this.clarity = clarity;
092    }
093
094    /**
095     * <div class="zh">眼睛状态。</div> <div class="en">Eyes status.</div>
096     * 
097     * @return <div class="zh">眼睛状态。
098     * <ul>
099     * <li>-1:无法检测。</li>
100     * <li>0:闭眼。</li>
101     * <li>1:睁眼。</li>
102     * </ul>
103     * </div> <div class="en">Eyes status.
104     * <ul>
105     * <li>-1:Can not detect.</li>
106     * <li>0:Close eyes.</li>
107     * <li>1:Open eyes.</li>
108     * </ul>
109     * </div>
110     */
111    public int getEyeStatus() {
112        return eyeStatus;
113    }
114
115    /**
116     * <div class="zh">眼睛状态。</div> <div class="en">Eyes status.</div>
117     * 
118     * @param eyeStatus <div class="zh">眼睛状态。
119     * <ul>
120     * <li>-1:无法检测。</li>
121     * <li>0:闭眼。</li>
122     * <li>1:睁眼。</li>
123     * </ul>
124     * </div> <div class="en">Eyes status.
125     * <ul>
126     * <li>-1:Can not detect.</li>
127     * <li>0:Close eyes.</li>
128     * <li>1:Open eyes.</li>
129     * </ul>
130     * </div>
131     */
132    public void setEyeStatus(int eyeStatus) {
133        this.eyeStatus = eyeStatus;
134    }
135
136    /**
137     * <div class="zh">面部角度。</div> <div class="en">Face Angle.</div>
138     * 
139     * @return {@link FaceAngle}
140     */
141    public FaceAngle getFaceAngle() {
142        return faceAngle;
143    }
144
145    /**
146     * <div class="zh">面部角度。</div> <div class="en">Face Angle.</div>
147     * 
148     * @param faceAngle {@link FaceAngle}
149     */
150    public void setFaceAngle(FaceAngle faceAngle) {
151        this.faceAngle = faceAngle;
152    }
153
154    /**
155     * <div class="zh">面部遮挡状态。</div> <div class="en">Face occlusion.</div>
156     * 
157     * @return <div class="zh">面部遮挡状态。
158     * <ul>
159     * <li>-1:无法检测。</li>
160     * <li>0:无遮挡。</li>
161     * <li>1:有遮挡。</li>
162     * </ul>
163     * </div> <div class="en">Face occlusion.
164     * <ul>
165     * <li>-1:Can not detect.</li>
166     * <li>0:Covered.</li>
167     * <li>1:Uncovered.</li>
168     * </ul>
169     * </div>
170     */
171    public int getFaceCover() {
172        return faceCover;
173    }
174
175    /**
176     * <div class="zh">面部遮挡状态。</div> <div class="en">Face occlusion.</div>
177     * 
178     * @param faceCover <div class="zh">面部遮挡状态。
179     * <ul>
180     * <li>-1:无法检测。</li>
181     * <li>0:无遮挡。</li>
182     * <li>1:有遮挡。</li>
183     * </ul>
184     * </div> <div class="en">Face occlusion.
185     * <ul>
186     * <li>-1:Can not detect.</li>
187     * <li>0:Covered.</li>
188     * <li>1:Uncovered.</li>
189     * </ul>
190     * </div>
191     */
192    public void setFaceCover(int faceCover) {
193        this.faceCover = faceCover;
194    }
195
196    /**
197     * <div class="zh">人脸框坐标信息。</div> <div class="en">Face detection rectangle coordinate information.</div>
198     * 
199     * @return {@link FaceRectangle}
200     */
201    public FaceRectangle getFaceRectangle() {
202        return faceRectangle;
203    }
204
205    /**
206     * <div class="zh">人脸框坐标信息。</div> <div class="en">Face detection rectangle coordinate information.</div>
207     * 
208     * @param faceRectangle {@link FaceRectangle}
209     */
210    public void setFaceRectangle(FaceRectangle faceRectangle) {
211        this.faceRectangle = faceRectangle;
212    }
213
214    /**
215     * <div class="zh">面部特征值。</div> <div class="en">Face feature values.</div>
216     * 
217     * @return <div class="zh">面部特征值。</div> <div class="en">Face feature values.</div>
218     */
219    public float[] getFeature() {
220        return feature;
221    }
222
223    /**
224     * <div class="zh">面部特征值。</div> <div class="en">Face feature values.</div>
225     * 
226     * @param feature <div class="zh">面部特征值。</div> <div class="en">Face feature values.</div>
227     */
228    public void setFeature(float[] feature) {
229        this.feature = feature;
230    }
231
232    /**
233     * <div class="zh">嘴巴状态。</div> <div class="en">Mouth state.</div>
234     * 
235     * @return <div class="zh">嘴巴状态。
236     * <ul>
237     * <li>-1:无法检测。</li>
238     * <li>0:张嘴。</li>
239     * <li>1:闭嘴。</li>
240     * </ul>
241     * </div>
242     * <div class="en">Mouth state.
243     * <ul>
244     * <li>-1:Can not detect.</li>
245     * <li>0:Open mouth.</li>
246     * <li>1:Close mouth.</li>
247     * </ul>
248     * </div>
249     */
250    public int getMouthStatus() {
251        return mouthStatus;
252    }
253
254    /**
255     * <div class="zh">嘴巴状态。</div> <div class="en">Mouth state.</div>
256     * 
257     * @param mouthStatus <div class="zh">嘴巴状态。
258     * <ul>
259     * <li>-1:无法检测。</li>
260     * <li>0:张嘴。</li>
261     * <li>1:闭嘴。</li>
262     * </ul>
263     * </div>
264     * <div class="en">Mouth state.
265     * <ul>
266     * <li>-1:Can not detect.</li>
267     * <li>0:Open mouth.</li>
268     * <li>1:Close mouth.</li>
269     * </ul>
270     * </div>
271     */
272    public void setMouthStatus(int mouthStatus) {
273        this.mouthStatus = mouthStatus;
274    }
275
276    /**
277     * <div class="zh">是否过曝。</div> <div class="en">Whether it's overexposed.</div>
278     * 
279     * @return <div class="zh">是否过曝。小于0表示无法获取。</div> <div class="en">Whether it's overexposed. Less than 0 means it cannot be retrieved.</div>
280     */
281    public int getOverexposure() {
282        return overexposure;
283    }
284
285    /**
286     * <div class="zh">是否过曝。</div> <div class="en">Whether it's overexposed.</div>
287     * 
288     * @param overexposure <div class="zh">是否过曝。小于0表示无法获取。</div> <div class="en">Whether it's overexposed. Less than 0 means it cannot be retrieved.</div>
289     */
290    public void setOverexposure(int overexposure) {
291        this.overexposure = overexposure;
292    }
293
294    /**
295     * <div class="zh">面部关键点坐标。</div> <div class="en">Face key coordinates.</div>
296     * 
297     * @return <div class="zh">面部关键点坐标。</div> <div class="en">Face key coordinates.</div>
298     */
299    public float[] getPoints() {
300        return points;
301    }
302
303    /**
304     * <div class="zh">面部关键点坐标。</div> <div class="en">Face key coordinates.</div>
305     * 
306     * @param points <div class="zh">面部关键点坐标。</div> <div class="en">Face key coordinates.</div>
307     */
308    public void setPoints(float[] points) {
309        this.points = points;
310    }
311
312    /**
313     * <div class="zh">配准点可信度。</div> <div class="en">Registration point credibility.</div>
314     *  
315     * @return <div class="zh">配准点可信度。每个点为[0, 1]的float值,其中0表示完全不可见(完全被遮挡);1表示完全可见(完全无遮挡)。</div>
316     * <div class="en">Registration point credibility.Each point is a float value of [0, 1], where 0 means completely invisible (completely obscured);
317     * 1 means completely visible (completely unshaded).</div>
318     */
319    public float[] getPointsVis() {
320        return pointsVis;
321    }
322
323    /**
324     * <div class="zh">配准点可信度。</div> <div class="en">Registration point credibility.</div>
325     * 
326     * @param pointsVis <div class="zh">配准点可信度。每个点为[0, 1]的float值,其中0表示完全不可见(完全被遮挡);1表示完全可见(完全无遮挡)。</div>
327     * <div class="en">Registration point credibility.Each point is a float value of [0, 1], where 0 means completely invisible (completely obscured);
328     * 1 means completely visible (completely unshaded).</div>
329     */
330    public void setPointsVis(float[] pointsVis) {
331        this.pointsVis = pointsVis;
332    }
333
334    /**
335     * <div class="zh">瞳距。</div> <div class="en">Pupil Distance.</div>
336     * 
337     * @return <div class="zh">瞳距。单位:像素。 -1:无法获取。</div> <div class="en">Pupil Distance. Unit: pixels. -1: unavailable.</div>
338     */
339    public int getPupilDistance() {
340        return pupilDistance;
341    }
342
343    /**
344     * <div class="zh">瞳距。</div> <div class="en">Pupil Distance.</div>
345     * 
346     * @param pupilDistance <div class="zh">瞳距。单位:像素。 -1:无法获取。</div> <div class="en">Pupil Distance. Unit: pixels. -1: unavailable.</div>
347     */
348    public void setPupilDistance(int pupilDistance) {
349        this.pupilDistance = pupilDistance;
350    }
351
352    /**
353     * <div class="zh">质量分。</div> <div class="en">Quality score</div>
354     * 
355     * @return <div class="zh">质量分。小于0表示无法获取。</div> <div class="en">Quality score. Less than 0 means it cannot be retrieved.</div>
356     */
357    public float getQuality() {
358        return quality;
359    }
360
361    /**
362     * <div class="zh">质量分。</div> <div class="en">Quality score</div>
363     * 
364     * @param quality <div class="zh">质量分。小于0表示无法获取。</div> <div class="en">Quality score. Less than 0 means it cannot be retrieved.</div>
365     */
366    public void setQuality(float quality) {
367        this.quality = quality;
368    }
369
370    @Override
371    public String toString() {
372        return "FaceInfo [brightness=" + brightness + ", clarity=" + clarity + ", eyeStatus=" + eyeStatus
373                + ", faceAngle=" + faceAngle + ", faceCover=" + faceCover + ", faceRectangle=" + faceRectangle
374                + ", feature=" + Arrays.toString(feature) + ", mouthStatus=" + mouthStatus + ", overexposure="
375                + overexposure + ", points=" + Arrays.toString(points) + ", pointsVis=" + Arrays.toString(pointsVis)
376                + ", pupilDistance=" + pupilDistance + ", quality=" + quality + "]";
377    }
378    
379}