Rethinking Classification and Localization for Cascade R-CNN
Ang Li Xue Yang Chongyang Zhang
cs.CV

[
    [
    December 30, 2023
=====================







We extend the state-of-the-art Cascade R-CNN with a simple feature sharing mechanism. Our approach focuses on the performance increases on high IoU but decreases on low IoU thresholds—a key problem this detector suffers from. Feature sharing is extremely helpful, our results show that given this mechanism embedded into all stages, we can easily narrow the gap between the last stage and preceding stages on low IoU thresholds without resorting to the commonly used testing ensemble but the network itself. We also observe obvious improvements on all IoU thresholds benefited from feature sharing, and the resulting cascade structure can easily  match or exceed its counterparts, only with negligible extra parameters introduced. To push the envelope, we demonstrate 43.2 AP on COCO object detection without any bells and whistles including testing ensemble, surpassing previous Cascade R-CNN by a large margin. Our framework is easy to implement and we hope it can serve as a general and strong baseline for future research.

Cascade has been proven to be extremely powerful in the field of object detection,
however, it suffers from the key problem of performance increase on high IoU but 
decrease on low IoU settings, previous methods resort to post-processing such as			
voting classification scores on all stages to improve the final performance. In this paper,
we give an in-depth analysis of why this happens and propose to narrow the gap between
the final stage and previous stages on low IoU settings. This is achieved by: (a) sharing 
task-specific features separately stage-by-stage, and (b) combining task-sensitive features
mutually stage-by-stage. The resulting cascade structure with the core spirit of feature sharing makes the performance improve on all IoU settings without depending on post-processing but the 
network itself, only with negligibly extra parameters introduced. To push the envelope, 
we demonstrate 44.0 AP on COCO object detection without any bells and whistles, surpassing 
previous state-of-the-art methods Cascade R-CNN by 2.8%. Our framework is easy to implement and we hope it can serve as a general and strong baseline for future research.







§ INTRODUCTION



Object detection is a fundamental yet challenging task in computer vision, requiring the algorithm to predict a bounding box with a category label for each object of interest in an image. Current state-of-the-art approaches<cit.> resort to a two-stage, anchor-refined manner, which applies the pre-defined anchor boxes to generate the region proposals first, and then refines the sampling RoIs progressively. Cascade R-CNN<cit.> follows these thoughts and proposes to refine the RoIs with gradually rising foreground/background thresholds to make the network more concentrate on high IoU settings. However, as can be clearly seen from Figure <ref>, for the 3rd stage, Cascade R-CNN achieves suboptimal performance on low IoU thresholds compared with the 2nd stage and FPN<cit.>, and this gap is even larger for the former. In original Cascade R-CNN<cit.>, the best results are achieved by ensembling of three classifiers on the 3rd stage proposals. 

This gap may be obvious because, for the 3rd stage, a higher IoU threshold 0.7 is usually employed to distinguish between the foreground and background in the training phase, thus the network will give low confidence with high probability to the RoIs whose IoU between 0.5 and 0.7 and will not regress these RoIs. This bias means some low IoU RoIs may learn well in preceding stages but may not in the 3rd stage, resulting in too much high overlap but low confidence boxes, and finally aborted by the NMS procedure. The commonly used testing ensemble process can alleviate this because in the testing phase, when the network can not acknowledge the overlaps (with ground truth) in advance, averaging the scores of all stages can make up for this problem of low confidence in the 3rd stage,  meaning that the network can still recall the aforementioned boxes with a certain probability, while mataining the quantities of original high IoU boxes, leading to more balanced results on all IoU thresholds.

This drop may be obvious because for the 3rd stage in original Cascade R-CNN, a high IoU threshold 0.7 is usually employed to distinguish between foreground and background, thus the network will give low confidence with a high probability to the RoIs whose IoU between 0.5 and 0.7 and will regress these RoIs. However, benefiting from previous two stages trained on low IoU settings, the 3rd stage still have a low probability to recall these low IoU RoIs, but will not directly affect the scoring and regressing process, so the AP between 0.5 and 0.7 still far behind the 2nd stage and original FPN. The commonly used voting process can alleviate this problem because given a low IoU testing box, the network can still give the box a higher score with a high probability in the first two stages. 




Can we achieve identical results without testing ensemble? Or in other words, can we narrow the gap between the last stage and preceding stages on low IoU threholds while keeping the superior performance on high IoU thresholds? We empirically find the testing ensemble process could be encoded in the network itself as long as effectively making use of the feature sharing mechanism among all stages. Feature sharing in Cascade R-CNN<cit.> has the following advantages, firstly, given this embedded into classification, this score averaging process can be inserted into the network, which can be viewed as a `soft' ensemble approach, thus the current stage can also learn from preceding stages without depending on each stage's isolated prediction, making the scoring  become more reasonable. Secondly, given this embedded into localization, the current stage can refine the RoIs progressively with the help of preceding stages, and the jointly optimization through back-propagation can make the detection box more accurate, thus the overall performance becomes improved.

first, sharing features with all previous stages for a certain task are extremely important, this task-specific feature sharing will make current stage not only optimize for its own threshold setting, but also take previous crucial features trained on low IoU settings into account, thus the information flow among different stages will become smoother, which can be viewed as a soft ensemble method, so we need to share classification and localization features with all previous stages seperately. Second, sharing features with all previous stages across different tasks are also important, making one task not only sensitive to another in the current stage, but also more sensitive to another in the previous stages, and we emphasize the key problem is that the classification head should be more sensitive to the localization results to make these two tasks become more consistent, because many high IoU boxes in the 3rd stage will be given a low score and aborted in the post NMS procedure due to this inconsistency, so we need to share classification features with all previous localization features mutually. 
 Based on the analysis above, we propose FSCascade, a simple feature sharing Cascade R-CNN framework, aiming at narrowing the gap between the last stage and preceding stages on low IoU thresholds without resorting to the testing ensemble, while improving the overall performance benefited from feature sharing. Based on FSCascade, we can clearly see from Figure <ref> that our approach not only brings overall improvements but also outperforms FPN<cit.> baseline on low IoU thresholds, and more importantly, compared with its own 2nd stage and 3rd stage, FSCascade greatly reach this goal. Moreover, extensive experiments also demonstrate employing testing ensemble approach to pray for a final best performance is very tricky, requiring carefully adjusting the parameters. However, our method is more stable and can improve the final performance steadily. On COCO object detection task, FSCascade surpasses all previous single-model detectors by a large margin, achieving 43.2 AP without any bells and whistles including testing ensemble, the main contributions of this work are summarized as follows:
 
Based on the analysis above, we propose FSCascade, a novel feature sharing Cascade R-CNN framework, aiming at narrowing the gap between the final stage and preceding stages on low IoU settings,   while achieving more superior performance on high IoU settings benefited from feature sharing, resulting in state-of-the-art performance on all IoU settings without resorting to testing ensemble but the network itself. As can be seen from the middle of Figure 1, FSCascade significantly outperforms FPN baseline on low IoU settings, and more importantly, it narrows the gap between its own 2nd stage and 3rd stage, which can further validate the effectiveness of our methods. Moreover, extensive experiments also demonstrate using testing ensemble method to pray for a final best performance is very tricky, requiring for carefully adjusting the parameters. However, our method is more stable and can improve the final performance steadily. On COCO object detection task, FSCascade surpasses all previous single-model detectors by a large margin, achieving 44.0 AP without any bells and whistles, the main contributions of this work are summarized as follows:




  - We give an in-depth analysis of why Cascade R-CNN is not ideal on low IoU thresholds.

  - We propose a soft ensemble approach called FSCascade, improving the generic object detection performance on all IoU thresholds without depending on the tricky post-processing but the network itself, and the improvements are much more stable.

  - We achieve 43.2 AP on COCO object detection task using ResNet-101 without any bells and whistles including testing ensemble, surpassing previous stage-of-the-art approach Cascade R-CNN by a large margin.






§ RELATED WORKS



Multi-stage object detectors are very popular in recent years. Following the main idea of “divide and conquer', these detectors optimze a simpler problem first, and then refine the difficult progressively. In the field of object detection, cascade can be introduced into two components, namely the proposal generation process usually called `RPN' and the classification and localization predicting process usually called `R-CNN<cit.>'. In these works, for the former, <cit.> propose to use a multi-stage procedure to generate accurate proposals, and then refine these proposals with a single Fast R-CNN<cit.>. For the latter, Cascade R-CNN<cit.> is the most famous object detectors among them, with increasingly foreground/background thresholds selected to refine the ROIs progressively. HTC<cit.> follows this thoughts and propose to refine the features in an interleaved manner, resulting in state-of-the-art performance on instance segmentation task. Other works like <cit.> also apply the R-CNN stage several times, but the performance is far behind Cascade R-CNN<cit.>.

Feature sharing has also been taken in many approaches. In <cit.>, sharing features in RPN stage can improve the performance and similar results can be found in <cit.> across different tasks. Different from these methods, our approach not only focuses on the overall improvements but also narrowing the gap without resorting to the commonly used testing ensemble in cascaded approaches but the network itself based on feature sharing.



§ METHODOLOGY



Our goal is to improve the last stage performance both on low and high IoU thresholds with minimal modifications, so special network design is not our purpose. We follow the main structure of Cascade R-CNN based on FPN and reach this goal with the main idea of feature sharing both for classification and localization, with only negligible extra parameters introduced, discussed next.



 §.§ Classification


Object detection needs to assign a category label for each object instance. In Cascade R-CNN, each stage is responsible for predicting a confidence score for a specific class under a given foreground/background threshold. What we find in this process is given a low IoU box (between 0.5 and 0.7), it may obtain an extremely high score in preceding stages, but a lower score in the following stage. For the last stage, if the probability of scoring the low IoU box can be increased, then in the testing phase, more these boxes could be recalled. That is to say, for the low IoU boxes, the key problem of the last stage is that a given box may already regress well but may not obtain a reasonable confidence score, and we need to give this ability back.

this imbalance is harmful to the final stage on training low IoU RoIs, and also on training high IoU RoIs to some extent. In other words, each stage lacks the ability to perceive the classification results of preceding stages, resulting in poor performance on low IoU settings, and we need to give this ability back.


Performing classification feature sharing is straightforward because, in FPN, two 1024-d fully connected layers are more friendly to this task. So for the classification in each stage, we directly employ these two layers as sharing base, and the sharing structure is shown in the left of Figure <ref>. For a given stage, the pooled features (7×7 in our experiments) are not only passed through its own fully connected layers, but also passed through all preceding two fully connected layers trained on lower IoU, the entire process is executed in parallel, and the simple implementation is shown below:

    C_1     = W_1^2 (W_1^1 (X_i^cls))
      
      C_2     = W_2^2 (W_2^1 (X_i^cls))
    ⋮
      
      C_i     = W_i^2 (W_i^1 (X_i^cls)).

Here, W_i^1 and W_i^2 denote the feature transformation of two fully connected layers for stage i, X_i^cls denotes the pooled features, and C_i is added with the features trained on all preceding stages through element-wise sum to represent final classification features, then the predictions are performed.

This feature sharing mechanism can be viewed as a soft ensemble method, however, different from the traditional testing ensemble, our approach can benefit from smoother information flow across different stages and optimize for all IoU thresholds through back-propagation, making the training process more stable.





 §.§ Localization


Solved the problem of imbalanced scoring for the last stage, our next consideration is that will the overall performance can be further improved while keeping this trend of the narrowed gap? To reach this goal, we firstly propose to perform localization based on the convolutional head instead of the commonly used fully connected layers used in FPN, because localization needs fine spatial information preserved. Due to this decoupled prediction head, we empirically find it can improve the detection performance by a large margin, shown in the experiments section next.

However,  it is worth noting although the added convolutional layers are more friendly to localization, it still makes the aforementioned problems—largely gap between the last stage and preceding stages on low IoU thresholds, unsolved. That is to say, the added layers may improve the localization performance but may not narrow the gap. However, with the help of feature sharing, we can reach this goal.

Object detection also needs to give an accurate localization box for each object instance, and this process is more sensitive to spatial information than clssification. In order to make this fine spatial information preserved, our first attempt is to use two 3 × 3 convolutional layers to predict offsets instead of two fully connected layers, and we perform feature sharing for localization based on these two convolutional layers. It is worth noting although these two extra layers are more friendly to localization, it still makes the aforementioned perceiving process agnostic, and the added layers may improve the localization performance but will not narrow the gap. However, with the help of feature sharing, we can reach this goal. 


Different from classification features sharing in a parallel way, we perform feature sharing for localization in a serial manner based on the added convolutional layers, shown in the right of Figure <ref>. The reason behind this is that box features are more friendly to be refined progressively based on preceding stages. As can be seen from Figure <ref>, two 3×3 convolutional layers are added to the 1st stage, and for the following stage, only one 3×3 and one 1×1 convolutional layer are added to each stage. All the added layers are 256 channels to be compatible with original structures. Our principle is trying to make the convolutional head as simple as possible without increasing too much computational overhead. The implementation is shown below:


    B_1     = F_1^2 (F_1^1 (X_i^box))
      
      B_2     = X_i^box + G_1(F_2^1 (B_1))
    ⋮
    
      B_i     = X_i^box + G_i-1(F_i^1 (B_i-1)).


Here, F_i denotes feature transformations of the 3 × 3 convolutional layer, G_i denotes feature transformations of the 1 × 1 convolutional layer, and B_i is used to perform box predictions. We also experiment with the parallel way like classification, but the results are no better than the serial manner, which further verifies that feature sharing for classification and localization are fundamentally different, the former more concentrates on `balance' while the latter more emphasizes `accuracy'.





§ EXPERIMENTS



We perform experiments on MS-COCO 2017 datasets, all models were trained on the ∼118k training sets, evaluated on the 5k validation sets (val), and final results were also reported on the ∼20k testing sets (test-dev). We use standard COCO-style Average Precision (AP) metric with IoU settings ranging from 0.5 to 0.95 with an interval of 0.05, and box AP is used to measure the detection performance. We use Cascade R-CNN based on FPN backbone as our baseline.



 §.§ Implementation Details



For a fair comparison, we reimplemented all the experiments including baseline with the same codebase, unless specifically stated. Our baseline results are slightly higher than the reported performance in the original papers. For Cascade R-CNN, we adopt a 3-stage cascade, and follow all the settings with the official Detectron version except the training strategy, discussed next. We train all the detectors with 8 GPUs (two images per GPU for both ResNet-50 and ResNet-101) for 20 epochs with the initial learning rate of 0.02, we decay it by 0.1 for the first epoch to perform warm up, and reset it back, then decay it by 0.1 after 10 and 16 epochs. The longer edge and shorter edge of images are resized to 1200 and 800, the same with the testing size. All ablation studies are based on ResNet-50.





 §.§ Ablation Studies


Classification feature sharing (CFS) is essential. In Figure <ref> we verify the effectiveness of feature sharing for classification. Based on (a) and (b), we can clearly see that models with vs. without feature sharing have similar APs, and even a little better for the latter (39.1 vs. 39.2). However, their gap for the 3rd stage with FPN (-1.0 vs. -0.6 for AP_50), and the 3rd stage with the 2nd stage (-1.1 vs. -0.4 for AP_50), showing a big difference. Based on the experiments, we come to the following conclusions. Firstly, CFS makes the scoring process of the last stage more reasonable, especially for low IoU boxes, thus the gap is extremely narrowed. Secondly, CFS may not contribute too much to the overall performance, which can be complementary to LFS to some extent.

We also emphasize that these improvements introduce no extra parameters, with only `soft' ensemble taken in parallel.

Localization feature sharing (LFS) is essential. We also verify the effectiveness of feature sharing for localization in Figure <ref>, and similar conclusions observed. Firstly, benefiting from the convolutional layers on preserving spatial information, the overall performance has been greatly improved (39.1 vs. 39.8). Secondly, comparing (a) with (c), we can clearly see LFS further narrows the gap for the 3rd stage with FPN (-1.0 vs. -0.2 for AP_50), and more importantly, the 3rd stage with the 2nd stage (-1.1 vs. -0.5 for AP_50).




Is this narrowed gap only caused by the added convolutional layers? For the answer, we also experiment to verify with vs. without feature sharing based on the convolutional localization head, and the results are shown in Table <ref>. This table reveals that convolutional head is more friendly to localization (39.1 vs. 39.8), but does not necessarily the key factor to encode this `soft' ensemble into the network itself (-0.8 vs. -0.5 for AP_50). 

The importance of feature sharing. With the dynamic combination of CFS and LFS, FSCascade significantly narrows the gap between the last stage and preceding stages on low IoU thresholds while improving the overall performance, respectively. We visualize the overall performance (Average Precision) between IoU 0.5 and 0.75 based on FSCascade and our reimplemented Cascade R-CNN to verify the aforementioned conclusions and the results are shown in Figure <ref>.


Finally, for the last stage, we visualize the confidence scores of each detection box whose IoU with ground truth boxes between 0.5 and 0.75, and the results are shown in Figure <ref>. We can clearly see that for a given IoU threshold, FSCascade makes the scoring process more reasonable, and the overall confidence scores are more balanced, thus many low IoU boxes can still be recalled, resulting in the final improvements on low IoU thresholds without resorting to the testing ensemble.

We also visualize the results of Cascade R-CNN based on the testing ensemble vs. our FSCascade only with the 3rd stage on all IoU settings, shown in the right of Figure <ref>, we come to the following conclusions. Firstly, the testing ensemble is very tricky, by applying different types of ensemble method, the result is unstable. Secondly, we can easily surpass the testing ensemble Cascade with only the last stage based on FSCascade.





Structure exploration for localization feature sharing (LFS). Given extra parameters are necessary for LFS, we conduct experiments to explore  more friendly structures to search for a trade-off for this branch. Our exploration follows: (1) better sharing method (parallel vs. serial), and (2) better computation trade-off. We show the structures in Figure 4 and the details are shown in Table 2. 

We empirically find 









 §.§ Comparison with the state-of-the-art


We use FSCascade based on FPN and ResNet-101 as backbone, to compare with state-of-the-art single model object detectors, and the results are shown in Table <ref>. We follow all the training settings described in Section <ref>, only except extending the training time which usually called `2×' training strategy. We do not use any multi-scale training or testing strategy. Three groups of detectors on Table <ref> are one-stage, two-stage, and multi-stage, respectively. Our FSCascade with ResNet-101 backbone achieves 43.2 AP without any bells and whistles including testing ensemble (contributing to more than 0.5AP improvements as described in original Cascade R-CNN<cit.> paper with this technique). We can also clearly see that with the solely 3rd stage, our FSCascade can match the performance of Grid R-CNN with FPN and ResNeXt-101<cit.> backbone and exceed the testing ensemble Cascade R-CNN by 2.7 % (original implementation) and 3.5 % (our reimplementation) for ResNet-50, 0.9 % (original implementation) and 1.6% (our reimplementation) for ResNet-101, respectively. 



§ CONCLUSION



In this paper, we propose FSCascade, a simple extension to the standard Cascade R-CNN with feature sharing mechanism. With our FSCascade, we can: (1) narrow the gap between the last stage and all preceding stages on low IoU thresholds, while (2) improving the overall 
performance on all IoU thresholds, with only negligible extra parameters introduced. We hope our simple approach can serve as a general and strong baseline for future research.



§ ACKNOWLEDGEMENT

This work is partially supported by National Key R&D Program of China (No.2017YFB1300205).



§ LATTER




 §.§ Paper length

Papers must be 9 pages in length, excluding the bibliography.





Papers which are
clearly overlength will not be reviewed.  This includes papers where the
margins and formatting are deemed to have been significantly altered from
those laid down by this style guide.  The reason such papers will not be
reviewed is that there is no provision for supervised revisions of
manuscripts.  The reviewing process cannot determine the suitability of the
paper for presentation in nine pages if it is reviewed in twelve.

The bibliography should begin immediately after the paper text.  It may
be of any length, within reason.  It should not include
annotations, figures, or any other paraphernalia intended to subvert the
paper length requirement.



 §.§ Dual submission

By submitting this manuscript to BMVC, the authors assert that it has not
been previously published in substantially similar form, and no paper
currently under submission to a conference contains significant overlap
with this one.  If you are in doubt about the amount of overlap, cite the
dual submission (as described below), and argue in the body of your paper
why this is a nontrivial advance.  A simultaneous journal submission would
be expected to have significant additional material not in the conference
paper, and should not be previously published, nor in the final acceptance
stages. The conference chairs reserve the right to cancel
submission of any paper which is found to violate these conditions.  In
particular, uncited dual submissions will be summarily dealt with.



 §.§ Anonymity and blind review

BMVC operates a double-blind review process.  Your review submission must not identify you as the author.  This means, in particular, that the
author list should be replaced by the words “BMVC YYYY Submission #
NNN”, where the italics are to indicate the year and the submission
number.  The provided  command  does this
automatically.  In addition, acknowledgements should not be included in the
review copy.

Many authors misunderstand the concept of anonymizing for blind
review.  Blind review does not mean that one must remove
citations to one's own work—in fact it is often impossible to
review a paper unless the previous citations are known and
available.

Blind review means that you do not use the words “my” or “our”
when citing previous work.  That is all.  (But see below for
techreports)

Saying “this builds on the work of Lucy Smith [1]” does not say
that you are Lucy Smith, it says that you are building on her
work.  If you are Smith and Jones, do not say “as we show in
[7]”, say “as Smith and Jones show in [7]” and at the end of the
paper, include reference 7 as you would any other cited work.

An example of a bad paper:



    An analysis of the frobnicatable foo filter.



   In this paper we present a performance analysis of our
   previous paper [1], and show it to be inferior to all
   previously known methods.  Why the previous paper was
   accepted without this analysis is beyond me.
   [1] Removed for blind review



An example of an excellent paper:




     An analysis of the frobnicatable foo filter.



   In this paper we present a performance analysis of the
   paper of Smith [1], and show it to be inferior to
   all previously known methods.  Why the previous paper
   was accepted without this analysis is beyond me.

   [1] Smith, L and Jones, C. “The frobnicatable foo
   filter, a fundamental contribution to human knowledge”.
   Nature 381(12), 1-213.


If you are making a submission to another conference at the same time,
which covers similar or overlapping material, you will almost certainly
need to refer to that submission in order to explain the differences,
just as you would if you or others had previously published related
work.  In such cases, include the anonymized parallel
submission <cit.> as additional material and cite it as

[1] Authors. “The frobnicatable foo filter”, ECCV 2006 Submission ID 324,
Supplied as additional material eccv06.pdf.


Finally, you may feel you need to tell the reader that more details can be
found elsewhere, and refer them to a technical report.  For conference
submissions, the paper must stand on its own, and not require the
reviewer to go to a techreport for further details.  Thus, you may say in
the body of the paper “further details may be found
in <cit.>”.  Then submit the techreport as additional material.
Again, you may not assume the reviewers will read this material.

Sometimes your paper is about a problem which you tested using a tool which
is widely known to be restricted to a single institution.  For example,
let's say it's 1969, you have solved a key problem on the Apollo lander,
and you believe that the ICLL'70 audience would like to hear about your
solution.  The work is a development of your celebrated 1968 paper entitled
“Zero-g frobnication: How being the only people in the world with access to
the Apollo lander source code makes us a wow at parties”, by Zeus .

You can handle this paper like any other.  Don't write “We show how to
improve our previous work [Anonymous, 1968].  This time we tested the
algorithm on a lunar lander [name of lander removed for blind review]”.
That would be silly, and would immediately identify the authors. Instead
write the following:

We describe a system for zero-g frobnication.  This
   system is new because it handles the following cases:
   A, B.  Previous systems [Zeus et al. 1968] didn't
   handle case B properly.  Ours handles it by including
   a foo term in the bar integral.

   ...

   The proposed system was integrated with the Apollo
   lunar lander, and went all the way to the moon, don't
   you know.  It displayed the following behaviours
   which show how well we solved cases A and B: ...

As you can see, the above text follows standard scientific convention,
reads better than the first version, and does not explicitly name you as
the authors.  A reviewer might think it likely that the new paper was
written by Zeus , but cannot make any decision based on that guess.
He or she would have to be sure that no other authors could have been
contracted to solve problem B.

FAQ: Are acknowledgements OK?  No.  Leave them for the final copy.



 §.§ Citations

When citing a multi-author paper, you may save space by using “et
alia”, shortened to “” (not “et. al.” as “et” is
a complete word.)  The provided  macro is a useful aide
memoire in this regard.  However, use it only when there are three or more
authors.  Thus, the following is correct: “ Frobnication has been trendy
lately.  It was introduced by Alpher <cit.>, and subsequently
developed by Alpher and Fotheringham-Smythe <cit.>, and Alpher
 <cit.>.”

This is incorrect: “... subsequently developed by Alpher  <cit.> ...”
because reference <cit.> has just two authors.  If you use the
 macro, then you need not worry about double periods
when used at the end of a sentence as in Alpher .



We use natbib, so citations in random order are nicely sorted:
 <cit.>.  However, we don't use the
compress option, as we want each reference to have its own hyperlink and
popup window.




 §.§ Footnotes


Please use footnotes[This is what a footnote looks like.  It
often distracts the reader from the main flow of the argument.] sparingly.
Indeed, try to avoid footnotes altogether and include necessary peripheral
observations in
the text (within parentheses, if you prefer, as in this sentence).  If you
wish to use a footnote, place it at the bottom of the column on the page on
which it is referenced. Use Times 8-point type, single-spaced.







 §.§ The ruler

The  style defines a printed ruler which should be present in the
version submitted for review.  The ruler is provided in order that
reviewers may comment on particular lines in the paper without
circumlocution.  If you are preparing a document using a non-document preparation system, please arrange for an equivalent ruler to
appear on the final output pages.  The presence or absence of the ruler
should not change the appearance of any other content on the page.  The
camera ready copy should not contain a ruler. ( users may remove
the  option from the  statement.)
Reviewers: note that the ruler measurements do not align well with lines
in the paper — this turns out to be very difficult to do well when the
paper contains many figures and equations, and, when done, looks ugly.
Just use fractional references (e.g. this line is 210.5), although in
most cases one would expect that the approximate location (210 in the
previous example) will be adequate.






 §.§ Mathematics


Please number all of your sections and displayed equations.  It is
important for readers to be able to refer to any particular equation.  Just
because you didn't refer to it in the text doesn't mean some future reader
might not need to refer to it.  It is cumbersome to have to use
circumlocutions like “the equation second from the top of page 3 column
1”.  (Note that the ruler will not be present in the final copy, so is not
an alternative to equation numbers).  All authors will benefit from reading
Mermin's description <cit.> of how to write mathematics.





 §.§ References


List and number all bibliographical references in 9-point Times,
single-spaced, at the end of your paper. When referenced in the text,
enclose the citation number in square brackets, for
example <cit.>.  Where appropriate, include the name(s) of
editors of referenced books.





 §.§ Color


Color is valuable, and will be visible to readers of the electronic copy.
However ensure that, when printed on a monochrome printer, no important
information is lost by the conversion to grayscale.



